/**
 * Resize function without multiple trigger
 *
 * Usage:
 * $(window).smartresize(function(){
 *     // code here
 * });
 */
(function ($, sr) {
	// debouncing function from John Hann
	// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
	var debounce = function (func, threshold, execAsap) {
		var timeout;

		return function debounced() {
			var obj = this,
				args = arguments;
			function delayed() {
				if (!execAsap) func.apply(obj, args);
				timeout = null;
			}

			if (timeout) clearTimeout(timeout);
			else if (execAsap) func.apply(obj, args);

			timeout = setTimeout(delayed, threshold || 100);
		};
	};

	// smartresize
	jQuery.fn[sr] = function (fn) {
		return fn ? this.bind("resize", debounce(fn)) : this.trigger(sr);
	};
})(jQuery, "smartresize");
/**
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

var CURRENT_URL = window.location.href.split("#")[0].split("?")[0],
	$BODY = $("body"),
	$MENU_TOGGLE = $("#menu_toggle"),
	$SIDEBAR_MENU = $("#sidebar-menu"),
	$SIDEBAR_FOOTER = $(".sidebar-footer"),
	$LEFT_COL = $(".left_col"),
	$RIGHT_COL = $(".right_col"),
	$NAV_MENU = $(".nav_menu"),
	$FOOTER = $("footer");

// Sidebar
function init_sidebar() {
	// TODO: This is some kind of easy fix, maybe we can improve this
	var setContentHeight = function () {
		// reset height
		$RIGHT_COL.css("min-height", $(window).height());

		var bodyHeight = $BODY.outerHeight(),
			footerHeight = $BODY.hasClass("footer_fixed") ? -10 : $FOOTER.height(),
			leftColHeight = $LEFT_COL.eq(1).height() + $SIDEBAR_FOOTER.height(),
			contentHeight = bodyHeight < leftColHeight ? leftColHeight : bodyHeight;

		// normalize content
		contentHeight -= $NAV_MENU.height() + footerHeight;

		$RIGHT_COL.css("min-height", contentHeight);
	};

	var openUpMenu = function () {
		$SIDEBAR_MENU.find("li").removeClass("active active-sm");
		$SIDEBAR_MENU.find("li ul").slideUp();
	};

	$SIDEBAR_MENU.find("a").on("click", function (ev) {
		var $li = $(this).parent();

		if ($li.is(".active")) {
			$li.removeClass("active active-sm");
			$("ul:first", $li).slideUp(function () {
				setContentHeight();
			});
		} else {
			// prevent closing menu if we are on child menu
			if (!$li.parent().is(".child_menu")) {
				openUpMenu();
			} else {
				if ($BODY.is("nav-sm")) {
					if (!$li.parent().is("child_menu")) {
						openUpMenu();
					}
				}
			}

			$li.addClass("active");

			$("ul:first", $li).slideDown(function () {
				setContentHeight();
			});
		}
	});

	// toggle small or large menu
	$MENU_TOGGLE.on("click", function () {
		if ($BODY.hasClass("nav-md")) {
			$SIDEBAR_MENU.find("li.active ul").hide();
			$SIDEBAR_MENU.find("li.active").addClass("active-sm").removeClass("active");
		} else {
			$SIDEBAR_MENU.find("li.active-sm ul").show();
			$SIDEBAR_MENU.find("li.active-sm").addClass("active").removeClass("active-sm");
		}

		$BODY.toggleClass("nav-md nav-sm");

		setContentHeight();

		$(".dataTable").each(function () {
			$(this).dataTable().fnDraw();
		});
	});

	// check active menu
	$SIDEBAR_MENU
		.find('a[href="' + CURRENT_URL + '"]')
		.parent("li")
		.addClass("current-page");

	$SIDEBAR_MENU
		.find("a")
		.filter(function () {
			return this.href == CURRENT_URL;
		})
		.parent("li")
		.addClass("current-page")
		.parents("ul")
		.slideDown(function () {
			setContentHeight();
		})
		.parent()
		.addClass("active");

	// recompute content when resizing
	$(window).smartresize(function () {
		setContentHeight();
	});

	setContentHeight();

	// fixed sidebar
	if ($.fn.mCustomScrollbar) {
		$(".menu_fixed").mCustomScrollbar({
			autoHideScrollbar: true,
			theme: "minimal",
			mouseWheel: { preventDefault: true },
		});
	}
}
// /Sidebar

// Panel toolbox
$(document).ready(function () {
	$(".collapse-link").on("click", function () {
		var $BOX_PANEL = $(this).closest(".x_panel"),
			$ICON = $(this).find("i"),
			$BOX_CONTENT = $BOX_PANEL.find(".x_content");

		// fix for some div with hardcoded fix class
		if ($BOX_PANEL.attr("style")) {
			$BOX_CONTENT.slideToggle(200, function () {
				$BOX_PANEL.removeAttr("style");
			});
		} else {
			$BOX_CONTENT.slideToggle(200);
			$BOX_PANEL.css("height", "auto");
		}

		$ICON.toggleClass("fa-chevron-up fa-chevron-down");
	});

	$(".close-link").click(function () {
		var $BOX_PANEL = $(this).closest(".x_panel");

		$BOX_PANEL.remove();
	});
});
// /Panel toolbox

// Tooltip
$(document).ready(function () {
	$('[data-toggle="tooltip"]').tooltip({
		container: "body",
	});
});
// /Tooltip

// Progressbar
$(document).ready(function () {
	if ($(".progress .progress-bar")[0]) {
		$(".progress .progress-bar").progressbar();
	}
});
// /Progressbar

// Switchery
$(document).ready(function () {
	if ($(".js-switch")[0]) {
		var elems = Array.prototype.slice.call(document.querySelectorAll(".js-switch"));
		elems.forEach(function (html) {
			var switchery = new Switchery(html, {
				color: "#26B99A",
			});
		});
	}
});
// /Switchery

// iCheck
$(document).ready(function () {
	if ($("input.flat")[0]) {
		$(document).ready(function () {
			$("input.flat").iCheck({
				checkboxClass: "icheckbox_flat-green",
				radioClass: "iradio_flat-green",
			});
		});
	}
});
// /iCheck

// Table
$("table input").on("ifChecked", function () {
	checkState = "";
	$(this).parent().parent().parent().addClass("selected");
	countChecked();
});
$("table input").on("ifUnchecked", function () {
	checkState = "";
	$(this).parent().parent().parent().removeClass("selected");
	countChecked();
});

var checkState = "";

$(".bulk_action input").on("ifChecked", function () {
	checkState = "";
	$(this).parent().parent().parent().addClass("selected");
	countChecked();
});
$(".bulk_action input").on("ifUnchecked", function () {
	checkState = "";
	$(this).parent().parent().parent().removeClass("selected");
	countChecked();
});
$(".bulk_action input#check-all").on("ifChecked", function () {
	checkState = "all";
	countChecked();
});
$(".bulk_action input#check-all").on("ifUnchecked", function () {
	checkState = "none";
	countChecked();
});

function countChecked() {
	if (checkState === "all") {
		$(".bulk_action input[name='table_records']").iCheck("check");
	}
	if (checkState === "none") {
		$(".bulk_action input[name='table_records']").iCheck("uncheck");
	}

	var checkCount = $(".bulk_action input[name='table_records']:checked").length;

	if (checkCount) {
		$(".column-title").hide();
		$(".bulk-actions").show();
		$(".action-cnt").html(checkCount + " Records Selected");
	} else {
		$(".column-title").show();
		$(".bulk-actions").hide();
	}
}

// Accordion
$(document).ready(function () {
	$(".expand").on("click", function () {
		$(this).next().slideToggle(200);
		$expand = $(this).find(">:first-child");

		if ($expand.text() == "+") {
			$expand.text("-");
		} else {
			$expand.text("+");
		}
	});
});

// NProgress
if (typeof NProgress != "undefined") {
	$(document).ready(function () {
		NProgress.start();
	});

	$(window).on("load", function () {
		NProgress.done();
	});
}

//hover and retain popover when on popover content
var originalLeave = $.fn.popover.Constructor.prototype.leave;
$.fn.popover.Constructor.prototype.leave = function (obj) {
	var self =
		obj instanceof this.constructor
			? obj
			: $(obj.currentTarget)
					[this.type](this.getDelegateOptions())
					.data("bs." + this.type);
	var container, timeout;

	originalLeave.call(this, obj);

	if (obj.currentTarget) {
		container = $(obj.currentTarget).siblings(".popover");
		timeout = self.timeout;
		container.one("mouseenter", function () {
			//We entered the actual popover – call off the dogs
			clearTimeout(timeout);
			//Let's monitor popover content instead
			container.one("mouseleave", function () {
				$.fn.popover.Constructor.prototype.leave.call(self, self);
			});
		});
	}
};

$("body").popover({
	selector: "[data-popover]",
	trigger: "click hover",
	delay: {
		show: 50,
		hide: 400,
	},
});

function gd(year, month, day) {
	return new Date(year, month - 1, day).getTime();
}

function init_flot_chart() {
	if (typeof $.plot === "undefined") {
		return;
	}

	console.log("init_flot_chart");
	var randNum = function () {
		return Math.floor(Math.random() * (1 + 40 - 20)) + 20;
	};

	var arr_data1 = [
		[gd(2012, 1, 1), 17],
		[gd(2012, 1, 2), 74],
		[gd(2012, 1, 3), 6],
		[gd(2012, 1, 4), 39],
		[gd(2012, 1, 5), 20],
		[gd(2012, 1, 6), 85],
		[gd(2012, 1, 7), 7],
	];

	var arr_data2 = [
		[gd(2012, 1, 1), 82],
		[gd(2012, 1, 2), 23],
		[gd(2012, 1, 3), 66],
		[gd(2012, 1, 4), 9],
		[gd(2012, 1, 5), 119],
		[gd(2012, 1, 6), 6],
		[gd(2012, 1, 7), 9],
	];

	var arr_data3 = [
		[0, 1],
		[1, 9],
		[2, 6],
		[3, 10],
		[4, 5],
		[5, 17],
		[6, 6],
		[7, 10],
		[8, 7],
		[9, 11],
		[10, 35],
		[11, 9],
		[12, 12],
		[13, 5],
		[14, 3],
		[15, 4],
		[16, 9],
	];

	var chart_plot_02_data = [];

	var chart_plot_03_data = [
		[0, 1],
		[1, 9],
		[2, 6],
		[3, 10],
		[4, 5],
		[5, 17],
		[6, 6],
		[7, 10],
		[8, 7],
		[9, 11],
		[10, 35],
		[11, 9],
		[12, 12],
		[13, 5],
		[14, 3],
		[15, 4],
		[16, 9],
	];

	for (var i = 0; i < 30; i++) {
		chart_plot_02_data.push([i, randNum() + i + i + 10]);
	}

	var chart_plot_01_settings = {
		series: {
			lines: {
				show: false,
				fill: true,
			},
			splines: {
				show: true,
				tension: 0.4,
				lineWidth: 1,
				fill: 0.4,
			},
			points: {
				radius: 0,
				show: true,
			},
			shadowSize: 2,
		},
		grid: {
			verticalLines: true,
			hoverable: true,
			clickable: true,
			tickColor: "#d5d5d5",
			borderWidth: 1,
			color: "#fff",
		},
		colors: ["rgba(38, 185, 154, 0.38)", "rgba(3, 88, 106, 0.38)"],
		xaxis: {
			tickColor: "rgba(51, 51, 51, 0.06)",
			mode: "time",
			tickSize: [1, "day"],
			//tickLength: 10,
			axisLabel: "Date",
			axisLabelUseCanvas: true,
			axisLabelFontSizePixels: 12,
			axisLabelFontFamily: "Verdana, Arial",
			axisLabelPadding: 10,
		},
		yaxis: {
			ticks: 8,
			tickColor: "rgba(51, 51, 51, 0.06)",
		},
		tooltip: false,
	};

	var chart_plot_02_settings = {
		grid: {
			show: true,
			aboveData: true,
			color: "#3f3f3f",
			labelMargin: 10,
			axisMargin: 0,
			borderWidth: 0,
			borderColor: null,
			minBorderMargin: 5,
			clickable: true,
			hoverable: true,
			autoHighlight: true,
			mouseActiveRadius: 100,
		},
		series: {
			lines: {
				show: true,
				fill: true,
				lineWidth: 2,
				steps: false,
			},
			points: {
				show: true,
				radius: 4.5,
				symbol: "circle",
				lineWidth: 3.0,
			},
		},
		legend: {
			position: "ne",
			margin: [0, -25],
			noColumns: 0,
			labelBoxBorderColor: null,
			labelFormatter: function (label, series) {
				return label + "&nbsp;&nbsp;";
			},
			width: 40,
			height: 1,
		},
		colors: ["#96CA59", "#3F97EB", "#72c380", "#6f7a8a", "#f7cb38", "#5a8022", "#2c7282"],
		shadowSize: 0,
		tooltip: true,
		tooltipOpts: {
			content: "%s: %y.0",
			xDateFormat: "%d/%m",
			shifts: {
				x: -30,
				y: -50,
			},
			defaultTheme: false,
		},
		yaxis: {
			min: 0,
		},
		xaxis: {
			mode: "time",
			minTickSize: [1, "day"],
			timeformat: "%d/%m/%y",
			min: chart_plot_02_data[0][0],
			max: chart_plot_02_data[20][0],
		},
	};

	var chart_plot_03_settings = {
		series: {
			curvedLines: {
				apply: true,
				active: true,
				monotonicFit: true,
			},
		},
		colors: ["#26B99A"],
		grid: {
			borderWidth: {
				top: 0,
				right: 0,
				bottom: 1,
				left: 1,
			},
			borderColor: {
				bottom: "#7F8790",
				left: "#7F8790",
			},
		},
	};

	if ($("#chart_plot_01").length) {
		console.log("Plot1");

		$.plot($("#chart_plot_01"), [arr_data1, arr_data2], chart_plot_01_settings);
	}

	if ($("#chart_plot_02").length) {
		console.log("Plot2");

		$.plot(
			$("#chart_plot_02"),
			[
				{
					label: "Email Sent",
					data: chart_plot_02_data,
					lines: {
						fillColor: "rgba(150, 202, 89, 0.12)",
					},
					points: {
						fillColor: "#fff",
					},
				},
			],
			chart_plot_02_settings
		);
	}

	if ($("#chart_plot_03").length) {
		console.log("Plot3");

		$.plot(
			$("#chart_plot_03"),
			[
				{
					label: "Registrations",
					data: chart_plot_03_data,
					lines: {
						fillColor: "rgba(150, 202, 89, 0.12)",
					},
					points: {
						fillColor: "#fff",
					},
				},
			],
			chart_plot_03_settings
		);
	}
}

/* STARRR */

function init_starrr() {
	if (typeof starrr === "undefined") {
		return;
	}
	console.log("init_starrr");

	$(".stars").starrr();

	$(".stars-existing").starrr({
		rating: 4,
	});

	$(".stars").on("starrr:change", function (e, value) {
		$(".stars-count").html(value);
	});

	$(".stars-existing").on("starrr:change", function (e, value) {
		$(".stars-count-existing").html(value);
	});
}

function init_JQVmap() {
	//console.log('check init_JQVmap [' + typeof (VectorCanvas) + '][' + typeof (jQuery.fn.vectorMap) + ']' );

	if (typeof jQuery.fn.vectorMap === "undefined") {
		return;
	}

	console.log("init_JQVmap");

	if ($("#world-map-gdp").length) {
		$("#world-map-gdp").vectorMap({
			map: "world_en",
			backgroundColor: null,
			color: "#ffffff",
			hoverOpacity: 0.7,
			selectedColor: "#666666",
			enableZoom: true,
			showTooltip: true,
			values: sample_data,
			scaleColors: ["#E6F2F0", "#149B7E"],
			normalizeFunction: "polynomial",
		});
	}

	if ($("#usa_map").length) {
		$("#usa_map").vectorMap({
			map: "usa_en",
			backgroundColor: null,
			color: "#ffffff",
			hoverOpacity: 0.7,
			selectedColor: "#666666",
			enableZoom: true,
			showTooltip: true,
			values: sample_data,
			scaleColors: ["#E6F2F0", "#149B7E"],
			normalizeFunction: "polynomial",
		});
	}
}

function init_skycons() {
	if (typeof Skycons === "undefined") {
		return;
	}
	console.log("init_skycons");

	var icons = new Skycons({
			color: "#73879C",
		}),
		list = [
			"clear-day",
			"clear-night",
			"partly-cloudy-day",
			"partly-cloudy-night",
			"cloudy",
			"rain",
			"sleet",
			"snow",
			"wind",
			"fog",
		],
		i;

	for (i = list.length; i--; ) icons.set(list[i], list[i]);

	icons.play();
}

function init_chart_doughnut() {
	if (typeof Chart === "undefined") {
		return;
	}

	console.log("init_chart_doughnut");

	if ($(".canvasDoughnut").length) {
		var chart_doughnut_settings = {
			type: "doughnut",
			tooltipFillColor: "rgba(51, 51, 51, 0.55)",
			data: {
				labels: ["Symbian", "Blackberry", "Other", "Android", "IOS"],
				datasets: [
					{
						data: [15, 20, 30, 10, 30],
						backgroundColor: ["#BDC3C7", "#9B59B6", "#E74C3C", "#26B99A", "#3498DB"],
						hoverBackgroundColor: ["#CFD4D8", "#B370CF", "#E95E4F", "#36CAAB", "#49A9EA"],
					},
				],
			},
			options: {
				legend: false,
				responsive: false,
			},
		};

		$(".canvasDoughnut").each(function () {
			var chart_element = $(this);
			var chart_doughnut = new Chart(chart_element, chart_doughnut_settings);
		});
	}
}

function init_gauge() {
	if (typeof Gauge === "undefined") {
		return;
	}

	console.log("init_gauge [" + $(".gauge-chart").length + "]");

	console.log("init_gauge");

	var chart_gauge_settings = {
		lines: 12,
		angle: 0,
		lineWidth: 0.4,
		pointer: {
			length: 0.75,
			strokeWidth: 0.042,
			color: "#1D212A",
		},
		limitMax: "false",
		colorStart: "#1ABC9C",
		colorStop: "#1ABC9C",
		strokeColor: "#F0F3F3",
		generateGradient: true,
	};

	if ($("#chart_gauge_01").length) {
		var chart_gauge_01_elem = document.getElementById("chart_gauge_01");
		var chart_gauge_01 = new Gauge(chart_gauge_01_elem).setOptions(chart_gauge_settings);
	}

	if ($("#gauge-text").length) {
		chart_gauge_01.maxValue = 6000;
		chart_gauge_01.animationSpeed = 32;
		chart_gauge_01.set(3200);
		chart_gauge_01.setTextField(document.getElementById("gauge-text"));
	}

	if ($("#chart_gauge_02").length) {
		var chart_gauge_02_elem = document.getElementById("chart_gauge_02");
		var chart_gauge_02 = new Gauge(chart_gauge_02_elem).setOptions(chart_gauge_settings);
	}

	if ($("#gauge-text2").length) {
		chart_gauge_02.maxValue = 9000;
		chart_gauge_02.animationSpeed = 32;
		chart_gauge_02.set(2400);
		chart_gauge_02.setTextField(document.getElementById("gauge-text2"));
	}
}

/* SPARKLINES */

function init_sparklines() {
	if (typeof jQuery.fn.sparkline === "undefined") {
		return;
	}
	console.log("init_sparklines");

	$(".sparkline_one").sparkline(
		[2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 4, 5, 6, 3, 5, 4, 5, 4, 5, 4, 3, 4, 5, 6, 7, 5, 4, 3, 5, 6],
		{
			type: "bar",
			height: "125",
			barWidth: 13,
			colorMap: {
				7: "#a1a1a1",
			},
			barSpacing: 2,
			barColor: "#26B99A",
		}
	);

	$(".sparkline_two").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 7, 5, 4, 3, 5, 6], {
		type: "bar",
		height: "40",
		barWidth: 9,
		colorMap: {
			7: "#a1a1a1",
		},
		barSpacing: 2,
		barColor: "#26B99A",
	});

	$(".sparkline_three").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 7, 5, 4, 3, 5, 6], {
		type: "line",
		width: "200",
		height: "40",
		lineColor: "#26B99A",
		fillColor: "rgba(223, 223, 223, 0.57)",
		lineWidth: 2,
		spotColor: "#26B99A",
		minSpotColor: "#26B99A",
	});

	$(".sparkline11").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 6, 2, 4, 3, 4, 5, 4, 5, 4, 3], {
		type: "bar",
		height: "40",
		barWidth: 8,
		colorMap: {
			7: "#a1a1a1",
		},
		barSpacing: 2,
		barColor: "#26B99A",
	});

	$(".sparkline22").sparkline([2, 4, 3, 4, 7, 5, 4, 3, 5, 6, 2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 6], {
		type: "line",
		height: "40",
		width: "200",
		lineColor: "#26B99A",
		fillColor: "#ffffff",
		lineWidth: 3,
		spotColor: "#34495E",
		minSpotColor: "#34495E",
	});

	$(".sparkline_bar").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 4, 5, 6, 3, 5], {
		type: "bar",
		colorMap: {
			7: "#a1a1a1",
		},
		barColor: "#26B99A",
	});

	$(".sparkline_area").sparkline([5, 6, 7, 9, 9, 5, 3, 2, 2, 4, 6, 7], {
		type: "line",
		lineColor: "#26B99A",
		fillColor: "#26B99A",
		spotColor: "#4578a0",
		minSpotColor: "#728fb2",
		maxSpotColor: "#6d93c4",
		highlightSpotColor: "#ef5179",
		highlightLineColor: "#8ba8bf",
		spotRadius: 2.5,
		width: 85,
	});

	$(".sparkline_line").sparkline([2, 4, 3, 4, 5, 4, 5, 4, 3, 4, 5, 6, 4, 5, 6, 3, 5], {
		type: "line",
		lineColor: "#26B99A",
		fillColor: "#ffffff",
		width: 85,
		spotColor: "#34495E",
		minSpotColor: "#34495E",
	});

	$(".sparkline_pie").sparkline([1, 1, 2, 1], {
		type: "pie",
		sliceColors: ["#26B99A", "#ccc", "#75BCDD", "#D66DE2"],
	});

	$(".sparkline_discreet").sparkline([4, 6, 7, 7, 4, 3, 2, 1, 4, 4, 2, 4, 3, 7, 8, 9, 7, 6, 4, 3], {
		type: "discrete",
		barWidth: 3,
		lineColor: "#26B99A",
		width: "85",
	});
}

/* AUTOCOMPLETE */

function init_autocomplete() {
	if (typeof $.fn.autocomplete === "undefined") {
		return;
	}
	console.log("init_autocomplete");

	var countries = {
		AD: "Andorra",
		A2: "Andorra Test",
		AE: "United Arab Emirates",
		AF: "Afghanistan",
		AG: "Antigua and Barbuda",
		AI: "Anguilla",
		AL: "Albania",
		AM: "Armenia",
		AN: "Netherlands Antilles",
		AO: "Angola",
		AQ: "Antarctica",
		AR: "Argentina",
		AS: "American Samoa",
		AT: "Austria",
		AU: "Australia",
		AW: "Aruba",
		AX: "Åland Islands",
		AZ: "Azerbaijan",
		BA: "Bosnia and Herzegovina",
		BB: "Barbados",
		BD: "Bangladesh",
		BE: "Belgium",
		BF: "Burkina Faso",
		BG: "Bulgaria",
		BH: "Bahrain",
		BI: "Burundi",
		BJ: "Benin",
		BL: "Saint Barthélemy",
		BM: "Bermuda",
		BN: "Brunei",
		BO: "Bolivia",
		BQ: "British Antarctic Territory",
		BR: "Brazil",
		BS: "Bahamas",
		BT: "Bhutan",
		BV: "Bouvet Island",
		BW: "Botswana",
		BY: "Belarus",
		BZ: "Belize",
		CA: "Canada",
		CC: "Cocos [Keeling] Islands",
		CD: "Congo - Kinshasa",
		CF: "Central African Republic",
		CG: "Congo - Brazzaville",
		CH: "Switzerland",
		CI: "Côte d’Ivoire",
		CK: "Cook Islands",
		CL: "Chile",
		CM: "Cameroon",
		CN: "China",
		CO: "Colombia",
		CR: "Costa Rica",
		CS: "Serbia and Montenegro",
		CT: "Canton and Enderbury Islands",
		CU: "Cuba",
		CV: "Cape Verde",
		CX: "Christmas Island",
		CY: "Cyprus",
		CZ: "Czech Republic",
		DD: "East Germany",
		DE: "Germany",
		DJ: "Djibouti",
		DK: "Denmark",
		DM: "Dominica",
		DO: "Dominican Republic",
		DZ: "Algeria",
		EC: "Ecuador",
		EE: "Estonia",
		EG: "Egypt",
		EH: "Western Sahara",
		ER: "Eritrea",
		ES: "Spain",
		ET: "Ethiopia",
		FI: "Finland",
		FJ: "Fiji",
		FK: "Falkland Islands",
		FM: "Micronesia",
		FO: "Faroe Islands",
		FQ: "French Southern and Antarctic Territories",
		FR: "France",
		FX: "Metropolitan France",
		GA: "Gabon",
		GB: "United Kingdom",
		GD: "Grenada",
		GE: "Georgia",
		GF: "French Guiana",
		GG: "Guernsey",
		GH: "Ghana",
		GI: "Gibraltar",
		GL: "Greenland",
		GM: "Gambia",
		GN: "Guinea",
		GP: "Guadeloupe",
		GQ: "Equatorial Guinea",
		GR: "Greece",
		GS: "South Georgia and the South Sandwich Islands",
		GT: "Guatemala",
		GU: "Guam",
		GW: "Guinea-Bissau",
		GY: "Guyana",
		HK: "Hong Kong SAR China",
		HM: "Heard Island and McDonald Islands",
		HN: "Honduras",
		HR: "Croatia",
		HT: "Haiti",
		HU: "Hungary",
		ID: "Indonesia",
		IE: "Ireland",
		IL: "Israel",
		IM: "Isle of Man",
		IN: "India",
		IO: "British Indian Ocean Territory",
		IQ: "Iraq",
		IR: "Iran",
		IS: "Iceland",
		IT: "Italy",
		JE: "Jersey",
		JM: "Jamaica",
		JO: "Jordan",
		JP: "Japan",
		JT: "Johnston Island",
		KE: "Kenya",
		KG: "Kyrgyzstan",
		KH: "Cambodia",
		KI: "Kiribati",
		KM: "Comoros",
		KN: "Saint Kitts and Nevis",
		KP: "North Korea",
		KR: "South Korea",
		KW: "Kuwait",
		KY: "Cayman Islands",
		KZ: "Kazakhstan",
		LA: "Laos",
		LB: "Lebanon",
		LC: "Saint Lucia",
		LI: "Liechtenstein",
		LK: "Sri Lanka",
		LR: "Liberia",
		LS: "Lesotho",
		LT: "Lithuania",
		LU: "Luxembourg",
		LV: "Latvia",
		LY: "Libya",
		MA: "Morocco",
		MC: "Monaco",
		MD: "Moldova",
		ME: "Montenegro",
		MF: "Saint Martin",
		MG: "Madagascar",
		MH: "Marshall Islands",
		MI: "Midway Islands",
		MK: "Macedonia",
		ML: "Mali",
		MM: "Myanmar [Burma]",
		MN: "Mongolia",
		MO: "Macau SAR China",
		MP: "Northern Mariana Islands",
		MQ: "Martinique",
		MR: "Mauritania",
		MS: "Montserrat",
		MT: "Malta",
		MU: "Mauritius",
		MV: "Maldives",
		MW: "Malawi",
		MX: "Mexico",
		MY: "Malaysia",
		MZ: "Mozambique",
		NA: "Namibia",
		NC: "New Caledonia",
		NE: "Niger",
		NF: "Norfolk Island",
		NG: "Nigeria",
		NI: "Nicaragua",
		NL: "Netherlands",
		NO: "Norway",
		NP: "Nepal",
		NQ: "Dronning Maud Land",
		NR: "Nauru",
		NT: "Neutral Zone",
		NU: "Niue",
		NZ: "New Zealand",
		OM: "Oman",
		PA: "Panama",
		PC: "Pacific Islands Trust Territory",
		PE: "Peru",
		PF: "French Polynesia",
		PG: "Papua New Guinea",
		PH: "Philippines",
		PK: "Pakistan",
		PL: "Poland",
		PM: "Saint Pierre and Miquelon",
		PN: "Pitcairn Islands",
		PR: "Puerto Rico",
		PS: "Palestinian Territories",
		PT: "Portugal",
		PU: "U.S. Miscellaneous Pacific Islands",
		PW: "Palau",
		PY: "Paraguay",
		PZ: "Panama Canal Zone",
		QA: "Qatar",
		RE: "Réunion",
		RO: "Romania",
		RS: "Serbia",
		RU: "Russia",
		RW: "Rwanda",
		SA: "Saudi Arabia",
		SB: "Solomon Islands",
		SC: "Seychelles",
		SD: "Sudan",
		SE: "Sweden",
		SG: "Singapore",
		SH: "Saint Helena",
		SI: "Slovenia",
		SJ: "Svalbard and Jan Mayen",
		SK: "Slovakia",
		SL: "Sierra Leone",
		SM: "San Marino",
		SN: "Senegal",
		SO: "Somalia",
		SR: "Suriname",
		ST: "São Tomé and Príncipe",
		SU: "Union of Soviet Socialist Republics",
		SV: "El Salvador",
		SY: "Syria",
		SZ: "Swaziland",
		TC: "Turks and Caicos Islands",
		TD: "Chad",
		TF: "French Southern Territories",
		TG: "Togo",
		TH: "Thailand",
		TJ: "Tajikistan",
		TK: "Tokelau",
		TL: "Timor-Leste",
		TM: "Turkmenistan",
		TN: "Tunisia",
		TO: "Tonga",
		TR: "Turkey",
		TT: "Trinidad and Tobago",
		TV: "Tuvalu",
		TW: "Taiwan",
		TZ: "Tanzania",
		UA: "Ukraine",
		UG: "Uganda",
		UM: "U.S. Minor Outlying Islands",
		US: "United States",
		UY: "Uruguay",
		UZ: "Uzbekistan",
		VA: "Vatican City",
		VC: "Saint Vincent and the Grenadines",
		VD: "North Vietnam",
		VE: "Venezuela",
		VG: "British Virgin Islands",
		VI: "U.S. Virgin Islands",
		VN: "Vietnam",
		VU: "Vanuatu",
		WF: "Wallis and Futuna",
		WK: "Wake Island",
		WS: "Samoa",
		YD: "People's Democratic Republic of Yemen",
		YE: "Yemen",
		YT: "Mayotte",
		ZA: "South Africa",
		ZM: "Zambia",
		ZW: "Zimbabwe",
		ZZ: "Unknown or Invalid Region",
	};

	var countriesArray = $.map(countries, function (value, key) {
		return {
			value: value,
			data: key,
		};
	});

	// initialize autocomplete with custom appendTo
	$("#autocomplete-custom-append").autocomplete({
		lookup: countriesArray,
	});
}

/* AUTOSIZE */

function init_autosize() {
	if (typeof $.fn.autosize !== "undefined") {
		autosize($(".resizable_textarea"));
	}
}

/* PARSLEY */

function init_parsley() {
	if (typeof parsley === "undefined") {
		return;
	}
	console.log("init_parsley");

	$(/*.listen*/ "parsley:field:validate", function () {
		validateFront();
	});
	$("#demo-form .btn").on("click", function () {
		$("#demo-form").parsley().validate();
		validateFront();
	});
	var validateFront = function () {
		if (true === $("#demo-form").parsley().isValid()) {
			$(".bs-callout-info").removeClass("hidden");
			$(".bs-callout-warning").addClass("hidden");
		} else {
			$(".bs-callout-info").addClass("hidden");
			$(".bs-callout-warning").removeClass("hidden");
		}
	};

	$(/*.listen*/ "parsley:field:validate", function () {
		validateFront();
	});
	$("#demo-form2 .btn").on("click", function () {
		$("#demo-form2").parsley().validate();
		validateFront();
	});
	var validateFront = function () {
		if (true === $("#demo-form2").parsley().isValid()) {
			$(".bs-callout-info").removeClass("hidden");
			$(".bs-callout-warning").addClass("hidden");
		} else {
			$(".bs-callout-info").addClass("hidden");
			$(".bs-callout-warning").removeClass("hidden");
		}
	};

	try {
		hljs.initHighlightingOnLoad();
	} catch (err) {}
}

/* INPUTS */

function onAddTag(tag) {
	alert("Added a tag: " + tag);
}

function onRemoveTag(tag) {
	alert("Removed a tag: " + tag);
}

function onChangeTag(input, tag) {
	alert("Changed a tag: " + tag);
}

//tags input
function init_TagsInput() {
	if (typeof $.fn.tagsInput !== "undefined") {
		$("#tags_1").tagsInput({
			width: "auto",
		});
	}
}

/* SELECT2 */

function init_select2() {
	if (typeof select2 === "undefined") {
		return;
	}
	console.log("init_toolbox");

	$(".select2_single").select2({
		placeholder: "Select a state",
		allowClear: true,
	});
	$(".select2_group").select2({});
	$(".select2_multiple").select2({
		maximumSelectionLength: 4,
		placeholder: "With Max Selection limit 4",
		allowClear: true,
	});
}

/* WYSIWYG EDITOR */

function init_wysiwyg() {
	if (typeof $.fn.wysiwyg === "undefined") {
		return;
	}
	console.log("init_wysiwyg");

	function init_ToolbarBootstrapBindings() {
		var fonts = [
				"Serif",
				"Sans",
				"Arial",
				"Arial Black",
				"Courier",
				"Courier New",
				"Comic Sans MS",
				"Helvetica",
				"Impact",
				"Lucida Grande",
				"Lucida Sans",
				"Tahoma",
				"Times",
				"Times New Roman",
				"Verdana",
			],
			fontTarget = $("[title=Font]").siblings(".dropdown-menu");
		$.each(fonts, function (idx, fontName) {
			fontTarget.append(
				$(
					'<li><a data-edit="fontName ' +
						fontName +
						'" style="font-family:\'' +
						fontName +
						"'\">" +
						fontName +
						"</a></li>"
				)
			);
		});
		$("a[title]").tooltip({
			container: "body",
		});
		$(".dropdown-menu input")
			.click(function () {
				return false;
			})
			.change(function () {
				$(this).parent(".dropdown-menu").siblings(".dropdown-toggle").dropdown("toggle");
			})
			.keydown("esc", function () {
				this.value = "";
				$(this).change();
			});

		$("[data-role=magic-overlay]").each(function () {
			var overlay = $(this),
				target = $(overlay.data("target"));
			overlay
				.css("opacity", 0)
				.css("position", "absolute")
				.offset(target.offset())
				.width(target.outerWidth())
				.height(target.outerHeight());
		});

		if ("onwebkitspeechchange" in document.createElement("input")) {
			var editorOffset = $("#editor").offset();

			$(".voiceBtn")
				.css("position", "absolute")
				.offset({
					top: editorOffset.top,
					left: editorOffset.left + $("#editor").innerWidth() - 35,
				});
		} else {
			$(".voiceBtn").hide();
		}
	}

	function showErrorAlert(reason, detail) {
		var msg = "";
		if (reason === "unsupported-file-type") {
			msg = "Unsupported format " + detail;
		} else {
			console.log("error uploading file", reason, detail);
		}
		$(
			'<div class="alert"> <button type="button" class="close" data-dismiss="alert">&times;</button>' +
				"<strong>File upload error</strong> " +
				msg +
				" </div>"
		).prependTo("#alerts");
	}

	$(".editor-wrapper").each(function () {
		var id = $(this).attr("id"); //editor-one

		$(this).wysiwyg({
			toolbarSelector: '[data-target="#' + id + '"]',
			fileUploadError: showErrorAlert,
		});
	});

	window.prettyPrint;
	prettyPrint();
}

/* CROPPER */

function init_cropper() {
	if (typeof $.fn.cropper === "undefined") {
		return;
	}
	console.log("init_cropper");

	var $image = $("#image");
	var $download = $("#download");
	var $dataX = $("#dataX");
	var $dataY = $("#dataY");
	var $dataHeight = $("#dataHeight");
	var $dataWidth = $("#dataWidth");
	var $dataRotate = $("#dataRotate");
	var $dataScaleX = $("#dataScaleX");
	var $dataScaleY = $("#dataScaleY");
	var options = {
		aspectRatio: 16 / 9,
		preview: ".img-preview",
		crop: function (e) {
			$dataX.val(Math.round(e.x));
			$dataY.val(Math.round(e.y));
			$dataHeight.val(Math.round(e.height));
			$dataWidth.val(Math.round(e.width));
			$dataRotate.val(e.rotate);
			$dataScaleX.val(e.scaleX);
			$dataScaleY.val(e.scaleY);
		},
	};

	// Tooltip
	$('[data-toggle="tooltip"]').tooltip();

	// Cropper
	$image
		.on({
			"build.cropper": function (e) {
				console.log(e.type);
			},
			"built.cropper": function (e) {
				console.log(e.type);
			},
			"cropstart.cropper": function (e) {
				console.log(e.type, e.action);
			},
			"cropmove.cropper": function (e) {
				console.log(e.type, e.action);
			},
			"cropend.cropper": function (e) {
				console.log(e.type, e.action);
			},
			"crop.cropper": function (e) {
				console.log(e.type, e.x, e.y, e.width, e.height, e.rotate, e.scaleX, e.scaleY);
			},
			"zoom.cropper": function (e) {
				console.log(e.type, e.ratio);
			},
		})
		.cropper(options);

	// Buttons
	if (!$.isFunction(document.createElement("canvas").getContext)) {
		$('button[data-method="getCroppedCanvas"]').prop("disabled", true);
	}

	if (typeof document.createElement("cropper").style.transition === "undefined") {
		$('button[data-method="rotate"]').prop("disabled", true);
		$('button[data-method="scale"]').prop("disabled", true);
	}

	// Download
	if (typeof $download[0].download === "undefined") {
		$download.addClass("disabled");
	}

	// Options
	$(".docs-toggles").on("change", "input", function () {
		var $this = $(this);
		var name = $this.attr("name");
		var type = $this.prop("type");
		var cropBoxData;
		var canvasData;

		if (!$image.data("cropper")) {
			return;
		}

		if (type === "checkbox") {
			options[name] = $this.prop("checked");
			cropBoxData = $image.cropper("getCropBoxData");
			canvasData = $image.cropper("getCanvasData");

			options.built = function () {
				$image.cropper("setCropBoxData", cropBoxData);
				$image.cropper("setCanvasData", canvasData);
			};
		} else if (type === "radio") {
			options[name] = $this.val();
		}

		$image.cropper("destroy").cropper(options);
	});

	// Methods
	$(".docs-buttons").on("click", "[data-method]", function () {
		var $this = $(this);
		var data = $this.data();
		var $target;
		var result;

		if ($this.prop("disabled") || $this.hasClass("disabled")) {
			return;
		}

		if ($image.data("cropper") && data.method) {
			data = $.extend({}, data); // Clone a new one

			if (typeof data.target !== "undefined") {
				$target = $(data.target);

				if (typeof data.option === "undefined") {
					try {
						data.option = JSON.parse($target.val());
					} catch (e) {
						console.log(e.message);
					}
				}
			}

			result = $image.cropper(data.method, data.option, data.secondOption);

			switch (data.method) {
				case "scaleX":
				case "scaleY":
					$(this).data("option", -data.option);
					break;

				case "getCroppedCanvas":
					if (result) {
						// Bootstrap's Modal
						$("#getCroppedCanvasModal").modal().find(".modal-body").html(result);

						if (!$download.hasClass("disabled")) {
							$download.attr("href", result.toDataURL());
						}
					}

					break;
			}

			if ($.isPlainObject(result) && $target) {
				try {
					$target.val(JSON.stringify(result));
				} catch (e) {
					console.log(e.message);
				}
			}
		}
	});

	// Keyboard
	$(document.body).on("keydown", function (e) {
		if (!$image.data("cropper") || this.scrollTop > 300) {
			return;
		}

		switch (e.which) {
			case 37:
				e.preventDefault();
				$image.cropper("move", -1, 0);
				break;

			case 38:
				e.preventDefault();
				$image.cropper("move", 0, -1);
				break;

			case 39:
				e.preventDefault();
				$image.cropper("move", 1, 0);
				break;

			case 40:
				e.preventDefault();
				$image.cropper("move", 0, 1);
				break;
		}
	});

	// Import image
	var $inputImage = $("#inputImage");
	var URL = window.URL || window.webkitURL;
	var blobURL;

	if (URL) {
		$inputImage.change(function () {
			var files = this.files;
			var file;

			if (!$image.data("cropper")) {
				return;
			}

			if (files && files.length) {
				file = files[0];

				if (/^image\/\w+$/.test(file.type)) {
					blobURL = URL.createObjectURL(file);
					$image
						.one("built.cropper", function () {
							// Revoke when load complete
							URL.revokeObjectURL(blobURL);
						})
						.cropper("reset")
						.cropper("replace", blobURL);
					$inputImage.val("");
				} else {
					window.alert("Please choose an image file.");
				}
			}
		});
	} else {
		$inputImage.prop("disabled", true).parent().addClass("disabled");
	}
}

/* CROPPER --- end */

/* KNOB */

function init_knob() {
	if (typeof $.fn.knob === "undefined") {
		return;
	}
	console.log("init_knob");

	$(".knob").knob({
		change: function (value) {
			//console.log("change : " + value);
		},
		release: function (value) {
			//console.log(this.$.attr('value'));
			console.log("release : " + value);
		},
		cancel: function () {
			console.log("cancel : ", this);
		},
		/*format : function (value) {
         return value + '%';
         },*/
		draw: function () {
			// "tron" case
			if (this.$.data("skin") == "tron") {
				this.cursorExt = 0.3;

				var a = this.arc(this.cv), // Arc
					pa, // Previous arc
					r = 1;

				this.g.lineWidth = this.lineWidth;

				if (this.o.displayPrevious) {
					pa = this.arc(this.v);
					this.g.beginPath();
					this.g.strokeStyle = this.pColor;
					this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, pa.s, pa.e, pa.d);
					this.g.stroke();
				}

				this.g.beginPath();
				this.g.strokeStyle = r ? this.o.fgColor : this.fgColor;
				this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, a.s, a.e, a.d);
				this.g.stroke();

				this.g.lineWidth = 2;
				this.g.beginPath();
				this.g.strokeStyle = this.o.fgColor;
				this.g.arc(
					this.xy,
					this.xy,
					this.radius - this.lineWidth + 1 + (this.lineWidth * 2) / 3,
					0,
					2 * Math.PI,
					false
				);
				this.g.stroke();

				return false;
			}
		},
	});

	// Example of infinite knob, iPod click wheel
	var v,
		up = 0,
		down = 0,
		i = 0,
		$idir = $("div.idir"),
		$ival = $("div.ival"),
		incr = function () {
			i++;
			$idir.show().html("+").fadeOut();
			$ival.html(i);
		},
		decr = function () {
			i--;
			$idir.show().html("-").fadeOut();
			$ival.html(i);
		};
	$("input.infinite").knob({
		min: 0,
		max: 20,
		stopper: false,
		change: function () {
			if (v > this.cv) {
				if (up) {
					decr();
					up = 0;
				} else {
					up = 1;
					down = 0;
				}
			} else {
				if (v < this.cv) {
					if (down) {
						incr();
						down = 0;
					} else {
						down = 1;
						up = 0;
					}
				}
			}
			v = this.cv;
		},
	});
}

/* INPUT MASK */

function init_InputMask() {
	if (typeof $.fn.inputmask === "undefined") {
		return;
	}
	console.log("init_InputMask");

	$(":input").inputmask();
}

/* COLOR PICKER */

function init_ColorPicker() {
	if (typeof $.fn.colorpicker === "undefined") {
		return;
	}
	console.log("init_ColorPicker");

	$(".demo1").colorpicker();
	$(".demo2").colorpicker();

	$("#demo_forceformat").colorpicker({
		format: "rgba",
		horizontal: true,
	});

	$("#demo_forceformat3").colorpicker({
		format: "rgba",
	});

	$(".demo-auto").colorpicker();
}

/* ION RANGE SLIDER */

function init_IonRangeSlider() {
	if (typeof $.fn.ionRangeSlider === "undefined") {
		return;
	}
	console.log("init_IonRangeSlider");

	$("#range_27").ionRangeSlider({
		type: "double",
		min: 1000000,
		max: 2000000,
		grid: true,
		force_edges: true,
	});
	$("#range").ionRangeSlider({
		hide_min_max: true,
		keyboard: true,
		min: 0,
		max: 5000,
		from: 1000,
		to: 4000,
		type: "double",
		step: 1,
		prefix: "$",
		grid: true,
	});
	$("#range_25").ionRangeSlider({
		type: "double",
		min: 1000000,
		max: 2000000,
		grid: true,
	});
	$("#range_26").ionRangeSlider({
		type: "double",
		min: 0,
		max: 10000,
		step: 500,
		grid: true,
		grid_snap: true,
	});
	$("#range_31").ionRangeSlider({
		type: "double",
		min: 0,
		max: 100,
		from: 30,
		to: 70,
		from_fixed: true,
	});
	$(".range_min_max").ionRangeSlider({
		type: "double",
		min: 0,
		max: 100,
		from: 30,
		to: 70,
		max_interval: 50,
	});
	$(".range_time24").ionRangeSlider({
		min: +moment().subtract(12, "hours").format("X"),
		max: +moment().format("X"),
		from: +moment().subtract(6, "hours").format("X"),
		grid: true,
		force_edges: true,
		prettify: function (num) {
			var m = moment(num, "X");
			return m.format("Do MMMM, HH:mm");
		},
	});
}

/* DATERANGEPICKER */

function init_daterangepicker() {
	if (typeof $.fn.daterangepicker === "undefined") {
		return;
	}
	console.log("init_daterangepicker");

	var cb = function (start, end, label) {
		console.log(start.toISOString(), end.toISOString(), label);
		$("#reportrange span").html(start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY"));
	};

	var optionSet1 = {
		startDate: moment().subtract(29, "days"),
		endDate: moment(),
		minDate: "01/01/2012",
		maxDate: "12/31/2015",
		dateLimit: {
			days: 60,
		},
		showDropdowns: true,
		showWeekNumbers: true,
		timePicker: false,
		timePickerIncrement: 1,
		timePicker12Hour: true,
		ranges: {
			Today: [moment(), moment()],
			Yesterday: [moment().subtract(1, "days"), moment().subtract(1, "days")],
			"Last 7 Days": [moment().subtract(6, "days"), moment()],
			"Last 30 Days": [moment().subtract(29, "days"), moment()],
			"This Month": [moment().startOf("month"), moment().endOf("month")],
			"Last Month": [
				moment().subtract(1, "month").startOf("month"),
				moment().subtract(1, "month").endOf("month"),
			],
		},
		opens: "left",
		buttonClasses: ["btn btn-default"],
		applyClass: "btn-small btn-primary",
		cancelClass: "btn-small",
		format: "MM/DD/YYYY",
		separator: " to ",
		locale: {
			applyLabel: "Submit",
			cancelLabel: "Clear",
			fromLabel: "From",
			toLabel: "To",
			customRangeLabel: "Custom",
			daysOfWeek: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
			monthNames: [
				"January",
				"February",
				"March",
				"April",
				"May",
				"June",
				"July",
				"August",
				"September",
				"October",
				"November",
				"December",
			],
			firstDay: 1,
		},
	};

	$("#reportrange span").html(
		moment().subtract(29, "days").format("MMMM D, YYYY") + " - " + moment().format("MMMM D, YYYY")
	);
	$("#reportrange").daterangepicker(optionSet1, cb);
	$("#reportrange").on("show.daterangepicker", function () {
		console.log("show event fired");
	});
	$("#reportrange").on("hide.daterangepicker", function () {
		console.log("hide event fired");
	});
	$("#reportrange").on("apply.daterangepicker", function (ev, picker) {
		console.log(
			"apply event fired, start/end dates are " +
				picker.startDate.format("MMMM D, YYYY") +
				" to " +
				picker.endDate.format("MMMM D, YYYY")
		);
	});
	$("#reportrange").on("cancel.daterangepicker", function (ev, picker) {
		console.log("cancel event fired");
	});
	$("#options1").click(function () {
		$("#reportrange").data("daterangepicker").setOptions(optionSet1, cb);
	});
	$("#options2").click(function () {
		$("#reportrange").data("daterangepicker").setOptions(optionSet2, cb);
	});
	$("#destroy").click(function () {
		$("#reportrange").data("daterangepicker").remove();
	});
}

function init_daterangepicker_right() {
	if (typeof $.fn.daterangepicker === "undefined") {
		return;
	}
	console.log("init_daterangepicker_right");

	var cb = function (start, end, label) {
		console.log(start.toISOString(), end.toISOString(), label);
		$("#reportrange_right span").html(start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY"));
	};

	var optionSet1 = {
		startDate: moment().subtract(29, "days"),
		endDate: moment(),
		minDate: "01/01/2012",
		maxDate: "12/31/2020",
		dateLimit: {
			days: 60,
		},
		showDropdowns: true,
		showWeekNumbers: true,
		timePicker: false,
		timePickerIncrement: 1,
		timePicker12Hour: true,
		ranges: {
			Today: [moment(), moment()],
			Yesterday: [moment().subtract(1, "days"), moment().subtract(1, "days")],
			"Last 7 Days": [moment().subtract(6, "days"), moment()],
			"Last 30 Days": [moment().subtract(29, "days"), moment()],
			"This Month": [moment().startOf("month"), moment().endOf("month")],
			"Last Month": [
				moment().subtract(1, "month").startOf("month"),
				moment().subtract(1, "month").endOf("month"),
			],
		},
		opens: "right",
		buttonClasses: ["btn btn-default"],
		applyClass: "btn-small btn-primary",
		cancelClass: "btn-small",
		format: "MM/DD/YYYY",
		separator: " to ",
		locale: {
			applyLabel: "Submit",
			cancelLabel: "Clear",
			fromLabel: "From",
			toLabel: "To",
			customRangeLabel: "Custom",
			daysOfWeek: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
			monthNames: [
				"January",
				"February",
				"March",
				"April",
				"May",
				"June",
				"July",
				"August",
				"September",
				"October",
				"November",
				"December",
			],
			firstDay: 1,
		},
	};

	$("#reportrange_right span").html(
		moment().subtract(29, "days").format("MMMM D, YYYY") + " - " + moment().format("MMMM D, YYYY")
	);

	$("#reportrange_right").daterangepicker(optionSet1, cb);

	$("#reportrange_right").on("show.daterangepicker", function () {
		console.log("show event fired");
	});
	$("#reportrange_right").on("hide.daterangepicker", function () {
		console.log("hide event fired");
	});
	$("#reportrange_right").on("apply.daterangepicker", function (ev, picker) {
		console.log(
			"apply event fired, start/end dates are " +
				picker.startDate.format("MMMM D, YYYY") +
				" to " +
				picker.endDate.format("MMMM D, YYYY")
		);
	});
	$("#reportrange_right").on("cancel.daterangepicker", function (ev, picker) {
		console.log("cancel event fired");
	});

	$("#options1").click(function () {
		$("#reportrange_right").data("daterangepicker").setOptions(optionSet1, cb);
	});

	$("#options2").click(function () {
		$("#reportrange_right").data("daterangepicker").setOptions(optionSet2, cb);
	});

	$("#destroy").click(function () {
		$("#reportrange_right").data("daterangepicker").remove();
	});
}

function init_daterangepicker_single_call() {
	if (typeof $.fn.daterangepicker === "undefined") {
		return;
	}
	console.log("init_daterangepicker_single_call");

	$("#single_cal1").daterangepicker(
		{
			singleDatePicker: true,
			singleClasses: "picker_1",
		},
		function (start, end, label) {
			console.log(start.toISOString(), end.toISOString(), label);
		}
	);
	$("#single_cal2").daterangepicker(
		{
			singleDatePicker: true,
			singleClasses: "picker_2",
		},
		function (start, end, label) {
			console.log(start.toISOString(), end.toISOString(), label);
		}
	);
	$("#single_cal3").daterangepicker(
		{
			singleDatePicker: true,
			singleClasses: "picker_3",
		},
		function (start, end, label) {
			console.log(start.toISOString(), end.toISOString(), label);
		}
	);
	$("#single_cal4").daterangepicker(
		{
			singleDatePicker: true,
			singleClasses: "picker_4",
		},
		function (start, end, label) {
			console.log(start.toISOString(), end.toISOString(), label);
		}
	);
}

function init_daterangepicker_reservation() {
	if (typeof $.fn.daterangepicker === "undefined") {
		return;
	}
	console.log("init_daterangepicker_reservation");

	$("#reservation").daterangepicker(null, function (start, end, label) {
		console.log(start.toISOString(), end.toISOString(), label);
	});

	$("#reservation-time").daterangepicker({
		timePicker: true,
		timePickerIncrement: 30,
		locale: {
			format: "MM/DD/YYYY h:mm A",
		},
	});
}

/* SMART WIZARD */

function init_SmartWizard() {
	if (typeof $.fn.smartWizard === "undefined") {
		return;
	}
	console.log("init_SmartWizard");

	$("#wizard").smartWizard();

	$("#wizard_verticle").smartWizard({
		transitionEffect: "slide",
	});

	$(".buttonNext").addClass("btn btn-success");
	$(".buttonPrevious").addClass("btn btn-primary");
	$(".buttonFinish").addClass("btn btn-default");
}

/* VALIDATOR */

function init_validator() {
	if (typeof validator === "undefined") {
		return;
	}
	console.log("init_validator");

	// initialize the validator function
	validator.message.date = "not a real date";

	// validate a field on "blur" event, a 'select' on 'change' event & a '.reuired' classed multifield on 'keyup':
	$("form")
		.on("blur", "input[required], input.optional, select.required", validator.checkField)
		.on("change", "select.required", validator.checkField)
		.on("keypress", "input[required][pattern]", validator.keypress);

	$(".multi.required").on("keyup blur", "input", function () {
		validator.checkField.apply($(this).siblings().last()[0]);
	});

	$("form").submit(function (e) {
		e.preventDefault();
		var submit = true;

		// evaluate the form using generic validaing
		if (!validator.checkAll($(this))) {
			submit = false;
		}

		if (submit) this.submit();

		return false;
	});
}

/* PNotify */

function init_PNotify() {
	if (typeof PNotify === "undefined") {
		return;
	}
	console.log("init_PNotify");
}

/* CUSTOM NOTIFICATION */

function init_CustomNotification() {
	console.log("run_customtabs");

	if (typeof CustomTabs === "undefined") {
		return;
	}
	console.log("init_CustomTabs");

	var cnt = 10;

	TabbedNotification = function (options) {
		var message =
			"<div id='ntf" +
			cnt +
			"' class='text alert-" +
			options.type +
			"' style='display:none'><h2><i class='fa fa-bell'></i> " +
			options.title +
			"</h2><div class='close'><a href='javascript:;' class='notification_close'><i class='fa fa-close'></i></a></div><p>" +
			options.text +
			"</p></div>";

		if (!document.getElementById("custom_notifications")) {
			alert("doesnt exists");
		} else {
			$("#custom_notifications ul.notifications").append(
				"<li><a id='ntlink" +
					cnt +
					"' class='alert-" +
					options.type +
					"' href='#ntf" +
					cnt +
					"'><i class='fa fa-bell animated shake'></i></a></li>"
			);
			$("#custom_notifications #notif-group").append(message);
			cnt++;
			CustomTabs(options);
		}
	};

	CustomTabs = function (options) {
		$(".tabbed_notifications > div").hide();
		$(".tabbed_notifications > div:first-of-type").show();
		$("#custom_notifications").removeClass("dsp_none");
		$(".notifications a").click(function (e) {
			e.preventDefault();
			var $this = $(this),
				tabbed_notifications = "#" + $this.parents(".notifications").data("tabbed_notifications"),
				others = $this.closest("li").siblings().children("a"),
				target = $this.attr("href");
			others.removeClass("active");
			$this.addClass("active");
			$(tabbed_notifications).children("div").hide();
			$(target).show();
		});
	};

	CustomTabs();

	var tabid = (idname = "");

	$(document).on("click", ".notification_close", function (e) {
		idname = $(this).parent().parent().attr("id");
		tabid = idname.substr(-2);
		$("#ntf" + tabid).remove();
		$("#ntlink" + tabid)
			.parent()
			.remove();
		$(".notifications a").first().addClass("active");
		$("#notif-group div").first().css("display", "block");
	});
}

/* EASYPIECHART */

function init_EasyPieChart() {
	if (typeof $.fn.easyPieChart === "undefined") {
		return;
	}
	console.log("init_EasyPieChart");

	$(".chart").easyPieChart({
		easing: "easeOutElastic",
		delay: 3000,
		barColor: "#26B99A",
		trackColor: "#fff",
		scaleColor: false,
		lineWidth: 20,
		trackWidth: 16,
		lineCap: "butt",
		onStep: function (from, to, percent) {
			$(this.el).find(".percent").text(Math.round(percent));
		},
	});
	var chart = (window.chart = $(".chart").data("easyPieChart"));
	$(".js_update").on("click", function () {
		chart.update(Math.random() * 200 - 100);
	});

	//hover and retain popover when on popover content
	var originalLeave = $.fn.popover.Constructor.prototype.leave;
	$.fn.popover.Constructor.prototype.leave = function (obj) {
		var self =
			obj instanceof this.constructor
				? obj
				: $(obj.currentTarget)
						[this.type](this.getDelegateOptions())
						.data("bs." + this.type);
		var container, timeout;

		originalLeave.call(this, obj);

		if (obj.currentTarget) {
			container = $(obj.currentTarget).siblings(".popover");
			timeout = self.timeout;
			container.one("mouseenter", function () {
				//We entered the actual popover – call off the dogs
				clearTimeout(timeout);
				//Let's monitor popover content instead
				container.one("mouseleave", function () {
					$.fn.popover.Constructor.prototype.leave.call(self, self);
				});
			});
		}
	};

	$("body").popover({
		selector: "[data-popover]",
		trigger: "click hover",
		delay: {
			show: 50,
			hide: 400,
		},
	});
}

function init_charts() {
	console.log("run_charts  typeof [" + typeof Chart + "]");

	if (typeof Chart === "undefined") {
		return;
	}

	console.log("init_charts");

	Chart.defaults.global.legend = {
		enabled: false,
	};

	if ($("#canvas_line").length) {
		var canvas_line_00 = new Chart(document.getElementById("canvas_line"), {
			type: "line",
			data: {
				labels: ["January", "February", "March", "April", "May", "June", "July"],
				datasets: [
					{
						label: "My First dataset",
						backgroundColor: "rgba(38, 185, 154, 0.31)",
						borderColor: "rgba(38, 185, 154, 0.7)",
						pointBorderColor: "rgba(38, 185, 154, 0.7)",
						pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(220,220,220,1)",
						pointBorderWidth: 1,
						data: [31, 74, 6, 39, 20, 85, 7],
					},
					{
						label: "My Second dataset",
						backgroundColor: "rgba(3, 88, 106, 0.3)",
						borderColor: "rgba(3, 88, 106, 0.70)",
						pointBorderColor: "rgba(3, 88, 106, 0.70)",
						pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(151,187,205,1)",
						pointBorderWidth: 1,
						data: [82, 23, 66, 9, 99, 4, 2],
					},
				],
			},
		});
	}

	if ($("#canvas_line1").length) {
		var canvas_line_01 = new Chart(document.getElementById("canvas_line1"), {
			type: "line",
			data: {
				labels: ["January", "February", "March", "April", "May", "June", "July"],
				datasets: [
					{
						label: "My First dataset",
						backgroundColor: "rgba(38, 185, 154, 0.31)",
						borderColor: "rgba(38, 185, 154, 0.7)",
						pointBorderColor: "rgba(38, 185, 154, 0.7)",
						pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(220,220,220,1)",
						pointBorderWidth: 1,
						data: [31, 74, 6, 39, 20, 85, 7],
					},
					{
						label: "My Second dataset",
						backgroundColor: "rgba(3, 88, 106, 0.3)",
						borderColor: "rgba(3, 88, 106, 0.70)",
						pointBorderColor: "rgba(3, 88, 106, 0.70)",
						pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(151,187,205,1)",
						pointBorderWidth: 1,
						data: [82, 23, 66, 9, 99, 4, 2],
					},
				],
			},
		});
	}

	if ($("#canvas_line2").length) {
		var canvas_line_02 = new Chart(document.getElementById("canvas_line2"), {
			type: "line",
			data: {
				labels: ["January", "February", "March", "April", "May", "June", "July"],
				datasets: [
					{
						label: "My First dataset",
						backgroundColor: "rgba(38, 185, 154, 0.31)",
						borderColor: "rgba(38, 185, 154, 0.7)",
						pointBorderColor: "rgba(38, 185, 154, 0.7)",
						pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(220,220,220,1)",
						pointBorderWidth: 1,
						data: [31, 74, 6, 39, 20, 85, 7],
					},
					{
						label: "My Second dataset",
						backgroundColor: "rgba(3, 88, 106, 0.3)",
						borderColor: "rgba(3, 88, 106, 0.70)",
						pointBorderColor: "rgba(3, 88, 106, 0.70)",
						pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(151,187,205,1)",
						pointBorderWidth: 1,
						data: [82, 23, 66, 9, 99, 4, 2],
					},
				],
			},
		});
	}

	if ($("#canvas_line3").length) {
		var canvas_line_03 = new Chart(document.getElementById("canvas_line3"), {
			type: "line",
			data: {
				labels: ["January", "February", "March", "April", "May", "June", "July"],
				datasets: [
					{
						label: "My First dataset",
						backgroundColor: "rgba(38, 185, 154, 0.31)",
						borderColor: "rgba(38, 185, 154, 0.7)",
						pointBorderColor: "rgba(38, 185, 154, 0.7)",
						pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(220,220,220,1)",
						pointBorderWidth: 1,
						data: [31, 74, 6, 39, 20, 85, 7],
					},
					{
						label: "My Second dataset",
						backgroundColor: "rgba(3, 88, 106, 0.3)",
						borderColor: "rgba(3, 88, 106, 0.70)",
						pointBorderColor: "rgba(3, 88, 106, 0.70)",
						pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(151,187,205,1)",
						pointBorderWidth: 1,
						data: [82, 23, 66, 9, 99, 4, 2],
					},
				],
			},
		});
	}

	if ($("#canvas_line4").length) {
		var canvas_line_04 = new Chart(document.getElementById("canvas_line4"), {
			type: "line",
			data: {
				labels: ["January", "February", "March", "April", "May", "June", "July"],
				datasets: [
					{
						label: "My First dataset",
						backgroundColor: "rgba(38, 185, 154, 0.31)",
						borderColor: "rgba(38, 185, 154, 0.7)",
						pointBorderColor: "rgba(38, 185, 154, 0.7)",
						pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(220,220,220,1)",
						pointBorderWidth: 1,
						data: [31, 74, 6, 39, 20, 85, 7],
					},
					{
						label: "My Second dataset",
						backgroundColor: "rgba(3, 88, 106, 0.3)",
						borderColor: "rgba(3, 88, 106, 0.70)",
						pointBorderColor: "rgba(3, 88, 106, 0.70)",
						pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(151,187,205,1)",
						pointBorderWidth: 1,
						data: [82, 23, 66, 9, 99, 4, 2],
					},
				],
			},
		});
	}

	// Line chart

	if ($("#lineChart").length) {
		var ctx = document.getElementById("lineChart");
		var lineChart = new Chart(ctx, {
			type: "line",
			data: {
				labels: ["January", "February", "March", "April", "May", "June", "July"],
				datasets: [
					{
						label: "My First dataset",
						backgroundColor: "rgba(38, 185, 154, 0.31)",
						borderColor: "rgba(38, 185, 154, 0.7)",
						pointBorderColor: "rgba(38, 185, 154, 0.7)",
						pointBackgroundColor: "rgba(38, 185, 154, 0.7)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(220,220,220,1)",
						pointBorderWidth: 1,
						data: [31, 74, 6, 39, 20, 85, 7],
					},
					{
						label: "My Second dataset",
						backgroundColor: "rgba(3, 88, 106, 0.3)",
						borderColor: "rgba(3, 88, 106, 0.70)",
						pointBorderColor: "rgba(3, 88, 106, 0.70)",
						pointBackgroundColor: "rgba(3, 88, 106, 0.70)",
						pointHoverBackgroundColor: "#fff",
						pointHoverBorderColor: "rgba(151,187,205,1)",
						pointBorderWidth: 1,
						data: [82, 23, 66, 9, 99, 4, 2],
					},
				],
			},
		});
	}

	// Bar chart

	if ($("#mybarChart").length) {
		var ctx = document.getElementById("mybarChart");
		var mybarChart = new Chart(ctx, {
			type: "bar",
			data: {
				labels: ["January", "February", "March", "April", "May", "June", "July"],
				datasets: [
					{
						label: "# of Votes",
						backgroundColor: "#26B99A",
						data: [51, 30, 40, 28, 92, 50, 45],
					},
					{
						label: "# of Votes",
						backgroundColor: "#03586A",
						data: [41, 56, 25, 48, 72, 34, 12],
					},
				],
			},

			options: {
				scales: {
					yAxes: [
						{
							ticks: {
								beginAtZero: true,
							},
						},
					],
				},
			},
		});
	}

	// Doughnut chart

	if ($("#canvasDoughnut").length) {
		var ctx = document.getElementById("canvasDoughnut");
		var data = {
			labels: ["Dark Grey", "Purple Color", "Gray Color", "Green Color", "Blue Color"],
			datasets: [
				{
					data: [120, 50, 140, 180, 100],
					backgroundColor: ["#455C73", "#9B59B6", "#BDC3C7", "#26B99A", "#3498DB"],
					hoverBackgroundColor: ["#34495E", "#B370CF", "#CFD4D8", "#36CAAB", "#49A9EA"],
				},
			],
		};

		var canvasDoughnut = new Chart(ctx, {
			type: "doughnut",
			tooltipFillColor: "rgba(51, 51, 51, 0.55)",
			data: data,
		});
	}

	// Radar chart

	if ($("#canvasRadar").length) {
		var ctx = document.getElementById("canvasRadar");
		var data = {
			labels: ["Eating", "Drinking", "Sleeping", "Designing", "Coding", "Cycling", "Running"],
			datasets: [
				{
					label: "My First dataset",
					backgroundColor: "rgba(3, 88, 106, 0.2)",
					borderColor: "rgba(3, 88, 106, 0.80)",
					pointBorderColor: "rgba(3, 88, 106, 0.80)",
					pointBackgroundColor: "rgba(3, 88, 106, 0.80)",
					pointHoverBackgroundColor: "#fff",
					pointHoverBorderColor: "rgba(220,220,220,1)",
					data: [65, 59, 90, 81, 56, 55, 40],
				},
				{
					label: "My Second dataset",
					backgroundColor: "rgba(38, 185, 154, 0.2)",
					borderColor: "rgba(38, 185, 154, 0.85)",
					pointColor: "rgba(38, 185, 154, 0.85)",
					pointStrokeColor: "#fff",
					pointHighlightFill: "#fff",
					pointHighlightStroke: "rgba(151,187,205,1)",
					data: [28, 48, 40, 19, 96, 27, 100],
				},
			],
		};

		var canvasRadar = new Chart(ctx, {
			type: "radar",
			data: data,
		});
	}

	// Pie chart
	if ($("#pieChart").length) {
		var ctx = document.getElementById("pieChart");
		var data = {
			datasets: [
				{
					data: [120, 50, 140, 180, 100],
					backgroundColor: ["#455C73", "#9B59B6", "#BDC3C7", "#26B99A", "#3498DB"],
					label: "My dataset", // for legend
				},
			],
			labels: ["Dark Gray", "Purple", "Gray", "Green", "Blue"],
		};

		var pieChart = new Chart(ctx, {
			data: data,
			type: "pie",
			otpions: {
				legend: false,
			},
		});
	}

	// PolarArea chart

	if ($("#polarArea").length) {
		var ctx = document.getElementById("polarArea");
		var data = {
			datasets: [
				{
					data: [120, 50, 140, 180, 100],
					backgroundColor: ["#455C73", "#9B59B6", "#BDC3C7", "#26B99A", "#3498DB"],
					label: "My dataset",
				},
			],
			labels: ["Dark Gray", "Purple", "Gray", "Green", "Blue"],
		};

		var polarArea = new Chart(ctx, {
			data: data,
			type: "polarArea",
			options: {
				scale: {
					ticks: {
						beginAtZero: true,
					},
				},
			},
		});
	}
}

/* COMPOSE */

function init_compose() {
	if (typeof $.fn.slideToggle === "undefined") {
		return;
	}
	console.log("init_compose");

	$("#compose, .compose-close").click(function () {
		$(".compose").slideToggle();
	});
}

/* CALENDAR */

function init_calendar() {
	if (typeof $.fn.fullCalendar === "undefined") {
		return;
	}
	console.log("init_calendar");

	var date = new Date(),
		d = date.getDate(),
		m = date.getMonth(),
		y = date.getFullYear(),
		started,
		categoryClass;

	var calendar = $("#calendar").fullCalendar({
		header: {
			left: "prev,next today",
			center: "title",
			right: "month,agendaWeek,agendaDay,listMonth",
		},
		selectable: true,
		selectHelper: true,
		select: function (start, end, allDay) {
			$("#fc_create").click();

			started = start;
			ended = end;

			$(".antosubmit").on("click", function () {
				var title = $("#title").val();
				if (end) {
					ended = end;
				}

				categoryClass = $("#event_type").val();

				if (title) {
					calendar.fullCalendar(
						"renderEvent",
						{
							title: title,
							start: started,
							end: end,
							allDay: allDay,
						},
						true // make the event "stick"
					);
				}

				$("#title").val("");

				calendar.fullCalendar("unselect");

				$(".antoclose").click();

				return false;
			});
		},
		eventClick: function (calEvent, jsEvent, view) {
			$("#fc_edit").click();
			$("#title2").val(calEvent.title);

			categoryClass = $("#event_type").val();

			$(".antosubmit2").on("click", function () {
				calEvent.title = $("#title2").val();

				calendar.fullCalendar("updateEvent", calEvent);
				$(".antoclose2").click();
			});

			calendar.fullCalendar("unselect");
		},
		editable: true,
		events: [
			{
				title: "All Day Event",
				start: new Date(y, m, 1),
			},
			{
				title: "Long Event",
				start: new Date(y, m, d - 5),
				end: new Date(y, m, d - 2),
			},
			{
				title: "Meeting",
				start: new Date(y, m, d, 10, 30),
				allDay: false,
			},
			{
				title: "Lunch",
				start: new Date(y, m, d + 14, 12, 0),
				end: new Date(y, m, d, 14, 0),
				allDay: false,
			},
			{
				title: "Birthday Party",
				start: new Date(y, m, d + 1, 19, 0),
				end: new Date(y, m, d + 1, 22, 30),
				allDay: false,
			},
			{
				title: "Click for Google",
				start: new Date(y, m, 28),
				end: new Date(y, m, 29),
				url: "http://google.com/",
			},
		],
	});
}

/* DATA TABLES */

function init_DataTables() {
	console.log("run_datatables");

	if (typeof $.fn.DataTable === "undefined") {
		return;
	}
	console.log("init_DataTables");

	var handleDataTableButtons = function () {
		if ($("#datatable-buttons").length) {
			$("#datatable-buttons").DataTable({
				dom: "Blfrtip",
				buttons: [
					{
						extend: "copy",
						className: "btn-sm",
					},
					{
						extend: "csv",
						className: "btn-sm",
					},
					{
						extend: "excel",
						className: "btn-sm",
					},
					{
						extend: "pdfHtml5",
						className: "btn-sm",
					},
					{
						extend: "print",
						className: "btn-sm",
					},
				],
				responsive: true,
			});
		}
	};

	TableManageButtons = (function () {
		"use strict";
		return {
			init: function () {
				handleDataTableButtons();
			},
		};
	})();

	$("#datatable").dataTable();

	$("#datatable-keytable").DataTable({
		keys: true,
	});

	$("#datatable-responsive").DataTable();

	$("#datatable-scroller").DataTable({
		ajax: "js/datatables/json/scroller-demo.json",
		deferRender: true,
		scrollY: 380,
		scrollCollapse: true,
		scroller: true,
	});

	$("#datatable-fixed-header").DataTable({
		fixedHeader: true,
	});

	var $datatable = $("#datatable-checkbox");

	$datatable.dataTable({
		order: [[1, "asc"]],
		columnDefs: [{ orderable: false, targets: [0] }],
	});
	$datatable.on("draw.dt", function () {
		$("checkbox input").iCheck({
			checkboxClass: "icheckbox_flat-green",
		});
	});

	TableManageButtons.init();
}

/* CHART - MORRIS  */

function init_morris_charts() {
	if (typeof Morris === "undefined") {
		return;
	}
	console.log("init_morris_charts");

	if ($("#graph_bar").length) {
		Morris.Bar({
			element: "graph_bar",
			data: [
				{ device: "iPhone 4", geekbench: 380 },
				{ device: "iPhone 4S", geekbench: 655 },
				{ device: "iPhone 3GS", geekbench: 275 },
				{ device: "iPhone 5", geekbench: 1571 },
				{ device: "iPhone 5S", geekbench: 655 },
				{ device: "iPhone 6", geekbench: 2154 },
				{ device: "iPhone 6 Plus", geekbench: 1144 },
				{ device: "iPhone 6S", geekbench: 2371 },
				{ device: "iPhone 6S Plus", geekbench: 1471 },
				{ device: "Other", geekbench: 1371 },
			],
			xkey: "device",
			ykeys: ["geekbench"],
			labels: ["Geekbench"],
			barRatio: 0.4,
			barColors: ["#26B99A", "#34495E", "#ACADAC", "#3498DB"],
			xLabelAngle: 35,
			hideHover: "auto",
			resize: true,
		});
	}

	if ($("#graph_bar_group").length) {
		Morris.Bar({
			element: "graph_bar_group",
			data: [
				{ period: "2016-10-01", licensed: 807, sorned: 660 },
				{ period: "2016-09-30", licensed: 1251, sorned: 729 },
				{ period: "2016-09-29", licensed: 1769, sorned: 1018 },
				{ period: "2016-09-20", licensed: 2246, sorned: 1461 },
				{ period: "2016-09-19", licensed: 2657, sorned: 1967 },
				{ period: "2016-09-18", licensed: 3148, sorned: 2627 },
				{ period: "2016-09-17", licensed: 3471, sorned: 3740 },
				{ period: "2016-09-16", licensed: 2871, sorned: 2216 },
				{ period: "2016-09-15", licensed: 2401, sorned: 1656 },
				{ period: "2016-09-10", licensed: 2115, sorned: 1022 },
			],
			xkey: "period",
			barColors: ["#26B99A", "#34495E", "#ACADAC", "#3498DB"],
			ykeys: ["licensed", "sorned"],
			labels: ["Licensed", "SORN"],
			hideHover: "auto",
			xLabelAngle: 60,
			resize: true,
		});
	}

	if ($("#graphx").length) {
		Morris.Bar({
			element: "graphx",
			data: [
				{ x: "2015 Q1", y: 2, z: 3, a: 4 },
				{ x: "2015 Q2", y: 3, z: 5, a: 6 },
				{ x: "2015 Q3", y: 4, z: 3, a: 2 },
				{ x: "2015 Q4", y: 2, z: 4, a: 5 },
			],
			xkey: "x",
			ykeys: ["y", "z", "a"],
			barColors: ["#26B99A", "#34495E", "#ACADAC", "#3498DB"],
			hideHover: "auto",
			labels: ["Y", "Z", "A"],
			resize: true,
		}).on("click", function (i, row) {
			console.log(i, row);
		});
	}

	if ($("#graph_area").length) {
		Morris.Area({
			element: "graph_area",
			data: [
				{ period: "2014 Q1", iphone: 2666, ipad: null, itouch: 2647 },
				{ period: "2014 Q2", iphone: 2778, ipad: 2294, itouch: 2441 },
				{ period: "2014 Q3", iphone: 4912, ipad: 1969, itouch: 2501 },
				{ period: "2014 Q4", iphone: 3767, ipad: 3597, itouch: 5689 },
				{ period: "2015 Q1", iphone: 6810, ipad: 1914, itouch: 2293 },
				{ period: "2015 Q2", iphone: 5670, ipad: 4293, itouch: 1881 },
				{ period: "2015 Q3", iphone: 4820, ipad: 3795, itouch: 1588 },
				{ period: "2015 Q4", iphone: 15073, ipad: 5967, itouch: 5175 },
				{ period: "2016 Q1", iphone: 10687, ipad: 4460, itouch: 2028 },
				{ period: "2016 Q2", iphone: 8432, ipad: 5713, itouch: 1791 },
			],
			xkey: "period",
			ykeys: ["iphone", "ipad", "itouch"],
			lineColors: ["#26B99A", "#34495E", "#ACADAC", "#3498DB"],
			labels: ["iPhone", "iPad", "iPod Touch"],
			pointSize: 2,
			hideHover: "auto",
			resize: true,
		});
	}

	if ($("#graph_donut").length) {
		Morris.Donut({
			element: "graph_donut",
			data: [
				{ label: "Jam", value: 25 },
				{ label: "Frosted", value: 40 },
				{ label: "Custard", value: 25 },
				{ label: "Sugar", value: 10 },
			],
			colors: ["#26B99A", "#34495E", "#ACADAC", "#3498DB"],
			formatter: function (y) {
				return y + "%";
			},
			resize: true,
		});
	}

	if ($("#graph_line").length) {
		Morris.Line({
			element: "graph_line",
			xkey: "year",
			ykeys: ["value"],
			labels: ["Value"],
			hideHover: "auto",
			lineColors: ["#26B99A", "#34495E", "#ACADAC", "#3498DB"],
			data: [
				{ year: "2012", value: 20 },
				{ year: "2013", value: 10 },
				{ year: "2014", value: 5 },
				{ year: "2015", value: 5 },
				{ year: "2016", value: 20 },
			],
			resize: true,
		});

		$MENU_TOGGLE.on("click", function () {
			$(window).resize();
		});
	}
}

/* ECHRTS */

function init_echarts() {
	if (typeof echarts === "undefined") {
		return;
	}
	console.log("init_echarts");

	var theme = {
		color: ["#26B99A", "#34495E", "#BDC3C7", "#3498DB", "#9B59B6", "#8abb6f", "#759c6a", "#bfd3b7"],

		title: {
			itemGap: 8,
			textStyle: {
				fontWeight: "normal",
				color: "#408829",
			},
		},

		dataRange: {
			color: ["#1f610a", "#97b58d"],
		},

		toolbox: {
			color: ["#408829", "#408829", "#408829", "#408829"],
		},

		tooltip: {
			backgroundColor: "rgba(0,0,0,0.5)",
			axisPointer: {
				type: "line",
				lineStyle: {
					color: "#408829",
					type: "dashed",
				},
				crossStyle: {
					color: "#408829",
				},
				shadowStyle: {
					color: "rgba(200,200,200,0.3)",
				},
			},
		},

		dataZoom: {
			dataBackgroundColor: "#eee",
			fillerColor: "rgba(64,136,41,0.2)",
			handleColor: "#408829",
		},
		grid: {
			borderWidth: 0,
		},

		categoryAxis: {
			axisLine: {
				lineStyle: {
					color: "#408829",
				},
			},
			splitLine: {
				lineStyle: {
					color: ["#eee"],
				},
			},
		},

		valueAxis: {
			axisLine: {
				lineStyle: {
					color: "#408829",
				},
			},
			splitArea: {
				show: true,
				areaStyle: {
					color: ["rgba(250,250,250,0.1)", "rgba(200,200,200,0.1)"],
				},
			},
			splitLine: {
				lineStyle: {
					color: ["#eee"],
				},
			},
		},
		timeline: {
			lineStyle: {
				color: "#408829",
			},
			controlStyle: {
				normal: { color: "#408829" },
				emphasis: { color: "#408829" },
			},
		},

		k: {
			itemStyle: {
				normal: {
					color: "#68a54a",
					color0: "#a9cba2",
					lineStyle: {
						width: 1,
						color: "#408829",
						color0: "#86b379",
					},
				},
			},
		},
		map: {
			itemStyle: {
				normal: {
					areaStyle: {
						color: "#ddd",
					},
					label: {
						textStyle: {
							color: "#c12e34",
						},
					},
				},
				emphasis: {
					areaStyle: {
						color: "#99d2dd",
					},
					label: {
						textStyle: {
							color: "#c12e34",
						},
					},
				},
			},
		},
		force: {
			itemStyle: {
				normal: {
					linkStyle: {
						strokeColor: "#408829",
					},
				},
			},
		},
		chord: {
			padding: 4,
			itemStyle: {
				normal: {
					lineStyle: {
						width: 1,
						color: "rgba(128, 128, 128, 0.5)",
					},
					chordStyle: {
						lineStyle: {
							width: 1,
							color: "rgba(128, 128, 128, 0.5)",
						},
					},
				},
				emphasis: {
					lineStyle: {
						width: 1,
						color: "rgba(128, 128, 128, 0.5)",
					},
					chordStyle: {
						lineStyle: {
							width: 1,
							color: "rgba(128, 128, 128, 0.5)",
						},
					},
				},
			},
		},
		gauge: {
			startAngle: 225,
			endAngle: -45,
			axisLine: {
				show: true,
				lineStyle: {
					color: [
						[0.2, "#86b379"],
						[0.8, "#68a54a"],
						[1, "#408829"],
					],
					width: 8,
				},
			},
			axisTick: {
				splitNumber: 10,
				length: 12,
				lineStyle: {
					color: "auto",
				},
			},
			axisLabel: {
				textStyle: {
					color: "auto",
				},
			},
			splitLine: {
				length: 18,
				lineStyle: {
					color: "auto",
				},
			},
			pointer: {
				length: "90%",
				color: "auto",
			},
			title: {
				textStyle: {
					color: "#333",
				},
			},
			detail: {
				textStyle: {
					color: "auto",
				},
			},
		},
		textStyle: {
			fontFamily: "Arial, Verdana, sans-serif",
		},
	};

	//echart Bar

	if ($("#mainb").length) {
		var echartBar = echarts.init(document.getElementById("mainb"), theme);

		echartBar.setOption({
			title: {
				text: "Graph title",
				subtext: "Graph Sub-text",
			},
			tooltip: {
				trigger: "axis",
			},
			legend: {
				data: ["sales", "purchases"],
			},
			toolbox: {
				show: false,
			},
			calculable: false,
			xAxis: [
				{
					type: "category",
					data: ["1?", "2?", "3?", "4?", "5?", "6?", "7?", "8?", "9?", "10?", "11?", "12?"],
				},
			],
			yAxis: [
				{
					type: "value",
				},
			],
			series: [
				{
					name: "sales",
					type: "bar",
					data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
					markPoint: {
						data: [
							{
								type: "max",
								name: "???",
							},
							{
								type: "min",
								name: "???",
							},
						],
					},
					markLine: {
						data: [
							{
								type: "average",
								name: "???",
							},
						],
					},
				},
				{
					name: "purchases",
					type: "bar",
					data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3],
					markPoint: {
						data: [
							{
								name: "sales",
								value: 182.2,
								xAxis: 7,
								yAxis: 183,
							},
							{
								name: "purchases",
								value: 2.3,
								xAxis: 11,
								yAxis: 3,
							},
						],
					},
					markLine: {
						data: [
							{
								type: "average",
								name: "???",
							},
						],
					},
				},
			],
		});
	}

	//echart Radar

	if ($("#echart_sonar").length) {
		var echartRadar = echarts.init(document.getElementById("echart_sonar"), theme);

		echartRadar.setOption({
			title: {
				text: "Budget vs spending",
				subtext: "Subtitle",
			},
			tooltip: {
				trigger: "item",
			},
			legend: {
				orient: "vertical",
				x: "right",
				y: "bottom",
				data: ["Allocated Budget", "Actual Spending"],
			},
			toolbox: {
				show: true,
				feature: {
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			polar: [
				{
					indicator: [
						{
							text: "Sales",
							max: 6000,
						},
						{
							text: "Administration",
							max: 16000,
						},
						{
							text: "Information Techology",
							max: 30000,
						},
						{
							text: "Customer Support",
							max: 38000,
						},
						{
							text: "Development",
							max: 52000,
						},
						{
							text: "Marketing",
							max: 25000,
						},
					],
				},
			],
			calculable: true,
			series: [
				{
					name: "Budget vs spending",
					type: "radar",
					data: [
						{
							value: [4300, 10000, 28000, 35000, 50000, 19000],
							name: "Allocated Budget",
						},
						{
							value: [5000, 14000, 28000, 31000, 42000, 21000],
							name: "Actual Spending",
						},
					],
				},
			],
		});
	}

	//echart Funnel

	if ($("#echart_pyramid").length) {
		var echartFunnel = echarts.init(document.getElementById("echart_pyramid"), theme);

		echartFunnel.setOption({
			title: {
				text: "Echart Pyramid Graph",
				subtext: "Subtitle",
			},
			tooltip: {
				trigger: "item",
				formatter: "{a} <br/>{b} : {c}%",
			},
			toolbox: {
				show: true,
				feature: {
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			legend: {
				data: ["Something #1", "Something #2", "Something #3", "Something #4", "Something #5"],
				orient: "vertical",
				x: "left",
				y: "bottom",
			},
			calculable: true,
			series: [
				{
					name: "漏斗图",
					type: "funnel",
					width: "40%",
					data: [
						{
							value: 60,
							name: "Something #1",
						},
						{
							value: 40,
							name: "Something #2",
						},
						{
							value: 20,
							name: "Something #3",
						},
						{
							value: 80,
							name: "Something #4",
						},
						{
							value: 100,
							name: "Something #5",
						},
					],
				},
			],
		});
	}

	//echart Gauge

	if ($("#echart_gauge").length) {
		var echartGauge = echarts.init(document.getElementById("echart_gauge"), theme);

		echartGauge.setOption({
			tooltip: {
				formatter: "{a} <br/>{b} : {c}%",
			},
			toolbox: {
				show: true,
				feature: {
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			series: [
				{
					name: "Performance",
					type: "gauge",
					center: ["50%", "50%"],
					startAngle: 140,
					endAngle: -140,
					min: 0,
					max: 100,
					precision: 0,
					splitNumber: 10,
					axisLine: {
						show: true,
						lineStyle: {
							color: [
								[0.2, "lightgreen"],
								[0.4, "orange"],
								[0.8, "skyblue"],
								[1, "#ff4500"],
							],
							width: 30,
						},
					},
					axisTick: {
						show: true,
						splitNumber: 5,
						length: 8,
						lineStyle: {
							color: "#eee",
							width: 1,
							type: "solid",
						},
					},
					axisLabel: {
						show: true,
						formatter: function (v) {
							switch (v + "") {
								case "10":
									return "a";
								case "30":
									return "b";
								case "60":
									return "c";
								case "90":
									return "d";
								default:
									return "";
							}
						},
						textStyle: {
							color: "#333",
						},
					},
					splitLine: {
						show: true,
						length: 30,
						lineStyle: {
							color: "#eee",
							width: 2,
							type: "solid",
						},
					},
					pointer: {
						length: "80%",
						width: 8,
						color: "auto",
					},
					title: {
						show: true,
						offsetCenter: ["-65%", -10],
						textStyle: {
							color: "#333",
							fontSize: 15,
						},
					},
					detail: {
						show: true,
						backgroundColor: "rgba(0,0,0,0)",
						borderWidth: 0,
						borderColor: "#ccc",
						width: 100,
						height: 40,
						offsetCenter: ["-60%", 10],
						formatter: "{value}%",
						textStyle: {
							color: "auto",
							fontSize: 30,
						},
					},
					data: [
						{
							value: 50,
							name: "Performance",
						},
					],
				},
			],
		});
	}

	//echart Line

	if ($("#echart_line").length) {
		var echartLine = echarts.init(document.getElementById("echart_line"), theme);

		echartLine.setOption({
			title: {
				text: "Line Graph",
				subtext: "Subtitle",
			},
			tooltip: {
				trigger: "axis",
			},
			legend: {
				x: 220,
				y: 40,
				data: ["Intent", "Pre-order", "Deal"],
			},
			toolbox: {
				show: true,
				feature: {
					magicType: {
						show: true,
						title: {
							line: "Line",
							bar: "Bar",
							stack: "Stack",
							tiled: "Tiled",
						},
						type: ["line", "bar", "stack", "tiled"],
					},
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			calculable: true,
			xAxis: [
				{
					type: "category",
					boundaryGap: false,
					data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
				},
			],
			yAxis: [
				{
					type: "value",
				},
			],
			series: [
				{
					name: "Deal",
					type: "line",
					smooth: true,
					itemStyle: {
						normal: {
							areaStyle: {
								type: "default",
							},
						},
					},
					data: [10, 12, 21, 54, 260, 830, 710],
				},
				{
					name: "Pre-order",
					type: "line",
					smooth: true,
					itemStyle: {
						normal: {
							areaStyle: {
								type: "default",
							},
						},
					},
					data: [30, 182, 434, 791, 390, 30, 10],
				},
				{
					name: "Intent",
					type: "line",
					smooth: true,
					itemStyle: {
						normal: {
							areaStyle: {
								type: "default",
							},
						},
					},
					data: [1320, 1132, 601, 234, 120, 90, 20],
				},
			],
		});
	}

	//echart Scatter

	if ($("#echart_scatter").length) {
		var echartScatter = echarts.init(document.getElementById("echart_scatter"), theme);

		echartScatter.setOption({
			title: {
				text: "Scatter Graph",
				subtext: "Heinz  2003",
			},
			tooltip: {
				trigger: "axis",
				showDelay: 0,
				axisPointer: {
					type: "cross",
					lineStyle: {
						type: "dashed",
						width: 1,
					},
				},
			},
			legend: {
				data: ["Data2", "Data1"],
			},
			toolbox: {
				show: true,
				feature: {
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			xAxis: [
				{
					type: "value",
					scale: true,
					axisLabel: {
						formatter: "{value} cm",
					},
				},
			],
			yAxis: [
				{
					type: "value",
					scale: true,
					axisLabel: {
						formatter: "{value} kg",
					},
				},
			],
			series: [
				{
					name: "Data1",
					type: "scatter",
					tooltip: {
						trigger: "item",
						formatter: function (params) {
							if (params.value.length > 1) {
								return (
									params.seriesName + " :<br/>" + params.value[0] + "cm " + params.value[1] + "kg "
								);
							} else {
								return params.seriesName + " :<br/>" + params.name + " : " + params.value + "kg ";
							}
						},
					},
					data: [
						[161.2, 51.6],
						[167.5, 59.0],
						[159.5, 49.2],
						[157.0, 63.0],
						[155.8, 53.6],
						[170.0, 59.0],
						[159.1, 47.6],
						[166.0, 69.8],
						[176.2, 66.8],
						[160.2, 75.2],
						[172.5, 55.2],
						[170.9, 54.2],
						[172.9, 62.5],
						[153.4, 42.0],
						[160.0, 50.0],
						[147.2, 49.8],
						[168.2, 49.2],
						[175.0, 73.2],
						[157.0, 47.8],
						[167.6, 68.8],
						[159.5, 50.6],
						[175.0, 82.5],
						[166.8, 57.2],
						[176.5, 87.8],
						[170.2, 72.8],
						[174.0, 54.5],
						[173.0, 59.8],
						[179.9, 67.3],
						[170.5, 67.8],
						[160.0, 47.0],
						[154.4, 46.2],
						[162.0, 55.0],
						[176.5, 83.0],
						[160.0, 54.4],
						[152.0, 45.8],
						[162.1, 53.6],
						[170.0, 73.2],
						[160.2, 52.1],
						[161.3, 67.9],
						[166.4, 56.6],
						[168.9, 62.3],
						[163.8, 58.5],
						[167.6, 54.5],
						[160.0, 50.2],
						[161.3, 60.3],
						[167.6, 58.3],
						[165.1, 56.2],
						[160.0, 50.2],
						[170.0, 72.9],
						[157.5, 59.8],
						[167.6, 61.0],
						[160.7, 69.1],
						[163.2, 55.9],
						[152.4, 46.5],
						[157.5, 54.3],
						[168.3, 54.8],
						[180.3, 60.7],
						[165.5, 60.0],
						[165.0, 62.0],
						[164.5, 60.3],
						[156.0, 52.7],
						[160.0, 74.3],
						[163.0, 62.0],
						[165.7, 73.1],
						[161.0, 80.0],
						[162.0, 54.7],
						[166.0, 53.2],
						[174.0, 75.7],
						[172.7, 61.1],
						[167.6, 55.7],
						[151.1, 48.7],
						[164.5, 52.3],
						[163.5, 50.0],
						[152.0, 59.3],
						[169.0, 62.5],
						[164.0, 55.7],
						[161.2, 54.8],
						[155.0, 45.9],
						[170.0, 70.6],
						[176.2, 67.2],
						[170.0, 69.4],
						[162.5, 58.2],
						[170.3, 64.8],
						[164.1, 71.6],
						[169.5, 52.8],
						[163.2, 59.8],
						[154.5, 49.0],
						[159.8, 50.0],
						[173.2, 69.2],
						[170.0, 55.9],
						[161.4, 63.4],
						[169.0, 58.2],
						[166.2, 58.6],
						[159.4, 45.7],
						[162.5, 52.2],
						[159.0, 48.6],
						[162.8, 57.8],
						[159.0, 55.6],
						[179.8, 66.8],
						[162.9, 59.4],
						[161.0, 53.6],
						[151.1, 73.2],
						[168.2, 53.4],
						[168.9, 69.0],
						[173.2, 58.4],
						[171.8, 56.2],
						[178.0, 70.6],
						[164.3, 59.8],
						[163.0, 72.0],
						[168.5, 65.2],
						[166.8, 56.6],
						[172.7, 105.2],
						[163.5, 51.8],
						[169.4, 63.4],
						[167.8, 59.0],
						[159.5, 47.6],
						[167.6, 63.0],
						[161.2, 55.2],
						[160.0, 45.0],
						[163.2, 54.0],
						[162.2, 50.2],
						[161.3, 60.2],
						[149.5, 44.8],
						[157.5, 58.8],
						[163.2, 56.4],
						[172.7, 62.0],
						[155.0, 49.2],
						[156.5, 67.2],
						[164.0, 53.8],
						[160.9, 54.4],
						[162.8, 58.0],
						[167.0, 59.8],
						[160.0, 54.8],
						[160.0, 43.2],
						[168.9, 60.5],
						[158.2, 46.4],
						[156.0, 64.4],
						[160.0, 48.8],
						[167.1, 62.2],
						[158.0, 55.5],
						[167.6, 57.8],
						[156.0, 54.6],
						[162.1, 59.2],
						[173.4, 52.7],
						[159.8, 53.2],
						[170.5, 64.5],
						[159.2, 51.8],
						[157.5, 56.0],
						[161.3, 63.6],
						[162.6, 63.2],
						[160.0, 59.5],
						[168.9, 56.8],
						[165.1, 64.1],
						[162.6, 50.0],
						[165.1, 72.3],
						[166.4, 55.0],
						[160.0, 55.9],
						[152.4, 60.4],
						[170.2, 69.1],
						[162.6, 84.5],
						[170.2, 55.9],
						[158.8, 55.5],
						[172.7, 69.5],
						[167.6, 76.4],
						[162.6, 61.4],
						[167.6, 65.9],
						[156.2, 58.6],
						[175.2, 66.8],
						[172.1, 56.6],
						[162.6, 58.6],
						[160.0, 55.9],
						[165.1, 59.1],
						[182.9, 81.8],
						[166.4, 70.7],
						[165.1, 56.8],
						[177.8, 60.0],
						[165.1, 58.2],
						[175.3, 72.7],
						[154.9, 54.1],
						[158.8, 49.1],
						[172.7, 75.9],
						[168.9, 55.0],
						[161.3, 57.3],
						[167.6, 55.0],
						[165.1, 65.5],
						[175.3, 65.5],
						[157.5, 48.6],
						[163.8, 58.6],
						[167.6, 63.6],
						[165.1, 55.2],
						[165.1, 62.7],
						[168.9, 56.6],
						[162.6, 53.9],
						[164.5, 63.2],
						[176.5, 73.6],
						[168.9, 62.0],
						[175.3, 63.6],
						[159.4, 53.2],
						[160.0, 53.4],
						[170.2, 55.0],
						[162.6, 70.5],
						[167.6, 54.5],
						[162.6, 54.5],
						[160.7, 55.9],
						[160.0, 59.0],
						[157.5, 63.6],
						[162.6, 54.5],
						[152.4, 47.3],
						[170.2, 67.7],
						[165.1, 80.9],
						[172.7, 70.5],
						[165.1, 60.9],
						[170.2, 63.6],
						[170.2, 54.5],
						[170.2, 59.1],
						[161.3, 70.5],
						[167.6, 52.7],
						[167.6, 62.7],
						[165.1, 86.3],
						[162.6, 66.4],
						[152.4, 67.3],
						[168.9, 63.0],
						[170.2, 73.6],
						[175.2, 62.3],
						[175.2, 57.7],
						[160.0, 55.4],
						[165.1, 104.1],
						[174.0, 55.5],
						[170.2, 77.3],
						[160.0, 80.5],
						[167.6, 64.5],
						[167.6, 72.3],
						[167.6, 61.4],
						[154.9, 58.2],
						[162.6, 81.8],
						[175.3, 63.6],
						[171.4, 53.4],
						[157.5, 54.5],
						[165.1, 53.6],
						[160.0, 60.0],
						[174.0, 73.6],
						[162.6, 61.4],
						[174.0, 55.5],
						[162.6, 63.6],
						[161.3, 60.9],
						[156.2, 60.0],
						[149.9, 46.8],
						[169.5, 57.3],
						[160.0, 64.1],
						[175.3, 63.6],
						[169.5, 67.3],
						[160.0, 75.5],
						[172.7, 68.2],
						[162.6, 61.4],
						[157.5, 76.8],
						[176.5, 71.8],
						[164.4, 55.5],
						[160.7, 48.6],
						[174.0, 66.4],
						[163.8, 67.3],
					],
					markPoint: {
						data: [
							{
								type: "max",
								name: "Max",
							},
							{
								type: "min",
								name: "Min",
							},
						],
					},
					markLine: {
						data: [
							{
								type: "average",
								name: "Mean",
							},
						],
					},
				},
				{
					name: "Data2",
					type: "scatter",
					tooltip: {
						trigger: "item",
						formatter: function (params) {
							if (params.value.length > 1) {
								return (
									params.seriesName + " :<br/>" + params.value[0] + "cm " + params.value[1] + "kg "
								);
							} else {
								return params.seriesName + " :<br/>" + params.name + " : " + params.value + "kg ";
							}
						},
					},
					data: [
						[174.0, 65.6],
						[175.3, 71.8],
						[193.5, 80.7],
						[186.5, 72.6],
						[187.2, 78.8],
						[181.5, 74.8],
						[184.0, 86.4],
						[184.5, 78.4],
						[175.0, 62.0],
						[184.0, 81.6],
						[180.0, 76.6],
						[177.8, 83.6],
						[192.0, 90.0],
						[176.0, 74.6],
						[174.0, 71.0],
						[184.0, 79.6],
						[192.7, 93.8],
						[171.5, 70.0],
						[173.0, 72.4],
						[176.0, 85.9],
						[176.0, 78.8],
						[180.5, 77.8],
						[172.7, 66.2],
						[176.0, 86.4],
						[173.5, 81.8],
						[178.0, 89.6],
						[180.3, 82.8],
						[180.3, 76.4],
						[164.5, 63.2],
						[173.0, 60.9],
						[183.5, 74.8],
						[175.5, 70.0],
						[188.0, 72.4],
						[189.2, 84.1],
						[172.8, 69.1],
						[170.0, 59.5],
						[182.0, 67.2],
						[170.0, 61.3],
						[177.8, 68.6],
						[184.2, 80.1],
						[186.7, 87.8],
						[171.4, 84.7],
						[172.7, 73.4],
						[175.3, 72.1],
						[180.3, 82.6],
						[182.9, 88.7],
						[188.0, 84.1],
						[177.2, 94.1],
						[172.1, 74.9],
						[167.0, 59.1],
						[169.5, 75.6],
						[174.0, 86.2],
						[172.7, 75.3],
						[182.2, 87.1],
						[164.1, 55.2],
						[163.0, 57.0],
						[171.5, 61.4],
						[184.2, 76.8],
						[174.0, 86.8],
						[174.0, 72.2],
						[177.0, 71.6],
						[186.0, 84.8],
						[167.0, 68.2],
						[171.8, 66.1],
						[182.0, 72.0],
						[167.0, 64.6],
						[177.8, 74.8],
						[164.5, 70.0],
						[192.0, 101.6],
						[175.5, 63.2],
						[171.2, 79.1],
						[181.6, 78.9],
						[167.4, 67.7],
						[181.1, 66.0],
						[177.0, 68.2],
						[174.5, 63.9],
						[177.5, 72.0],
						[170.5, 56.8],
						[182.4, 74.5],
						[197.1, 90.9],
						[180.1, 93.0],
						[175.5, 80.9],
						[180.6, 72.7],
						[184.4, 68.0],
						[175.5, 70.9],
						[180.6, 72.5],
						[177.0, 72.5],
						[177.1, 83.4],
						[181.6, 75.5],
						[176.5, 73.0],
						[175.0, 70.2],
						[174.0, 73.4],
						[165.1, 70.5],
						[177.0, 68.9],
						[192.0, 102.3],
						[176.5, 68.4],
						[169.4, 65.9],
						[182.1, 75.7],
						[179.8, 84.5],
						[175.3, 87.7],
						[184.9, 86.4],
						[177.3, 73.2],
						[167.4, 53.9],
						[178.1, 72.0],
						[168.9, 55.5],
						[157.2, 58.4],
						[180.3, 83.2],
						[170.2, 72.7],
						[177.8, 64.1],
						[172.7, 72.3],
						[165.1, 65.0],
						[186.7, 86.4],
						[165.1, 65.0],
						[174.0, 88.6],
						[175.3, 84.1],
						[185.4, 66.8],
						[177.8, 75.5],
						[180.3, 93.2],
						[180.3, 82.7],
						[177.8, 58.0],
						[177.8, 79.5],
						[177.8, 78.6],
						[177.8, 71.8],
						[177.8, 116.4],
						[163.8, 72.2],
						[188.0, 83.6],
						[198.1, 85.5],
						[175.3, 90.9],
						[166.4, 85.9],
						[190.5, 89.1],
						[166.4, 75.0],
						[177.8, 77.7],
						[179.7, 86.4],
						[172.7, 90.9],
						[190.5, 73.6],
						[185.4, 76.4],
						[168.9, 69.1],
						[167.6, 84.5],
						[175.3, 64.5],
						[170.2, 69.1],
						[190.5, 108.6],
						[177.8, 86.4],
						[190.5, 80.9],
						[177.8, 87.7],
						[184.2, 94.5],
						[176.5, 80.2],
						[177.8, 72.0],
						[180.3, 71.4],
						[171.4, 72.7],
						[172.7, 84.1],
						[172.7, 76.8],
						[177.8, 63.6],
						[177.8, 80.9],
						[182.9, 80.9],
						[170.2, 85.5],
						[167.6, 68.6],
						[175.3, 67.7],
						[165.1, 66.4],
						[185.4, 102.3],
						[181.6, 70.5],
						[172.7, 95.9],
						[190.5, 84.1],
						[179.1, 87.3],
						[175.3, 71.8],
						[170.2, 65.9],
						[193.0, 95.9],
						[171.4, 91.4],
						[177.8, 81.8],
						[177.8, 96.8],
						[167.6, 69.1],
						[167.6, 82.7],
						[180.3, 75.5],
						[182.9, 79.5],
						[176.5, 73.6],
						[186.7, 91.8],
						[188.0, 84.1],
						[188.0, 85.9],
						[177.8, 81.8],
						[174.0, 82.5],
						[177.8, 80.5],
						[171.4, 70.0],
						[185.4, 81.8],
						[185.4, 84.1],
						[188.0, 90.5],
						[188.0, 91.4],
						[182.9, 89.1],
						[176.5, 85.0],
						[175.3, 69.1],
						[175.3, 73.6],
						[188.0, 80.5],
						[188.0, 82.7],
						[175.3, 86.4],
						[170.5, 67.7],
						[179.1, 92.7],
						[177.8, 93.6],
						[175.3, 70.9],
						[182.9, 75.0],
						[170.8, 93.2],
						[188.0, 93.2],
						[180.3, 77.7],
						[177.8, 61.4],
						[185.4, 94.1],
						[168.9, 75.0],
						[185.4, 83.6],
						[180.3, 85.5],
						[174.0, 73.9],
						[167.6, 66.8],
						[182.9, 87.3],
						[160.0, 72.3],
						[180.3, 88.6],
						[167.6, 75.5],
						[186.7, 101.4],
						[175.3, 91.1],
						[175.3, 67.3],
						[175.9, 77.7],
						[175.3, 81.8],
						[179.1, 75.5],
						[181.6, 84.5],
						[177.8, 76.6],
						[182.9, 85.0],
						[177.8, 102.5],
						[184.2, 77.3],
						[179.1, 71.8],
						[176.5, 87.9],
						[188.0, 94.3],
						[174.0, 70.9],
						[167.6, 64.5],
						[170.2, 77.3],
						[167.6, 72.3],
						[188.0, 87.3],
						[174.0, 80.0],
						[176.5, 82.3],
						[180.3, 73.6],
						[167.6, 74.1],
						[188.0, 85.9],
						[180.3, 73.2],
						[167.6, 76.3],
						[183.0, 65.9],
						[183.0, 90.9],
						[179.1, 89.1],
						[170.2, 62.3],
						[177.8, 82.7],
						[179.1, 79.1],
						[190.5, 98.2],
						[177.8, 84.1],
						[180.3, 83.2],
						[180.3, 83.2],
					],
					markPoint: {
						data: [
							{
								type: "max",
								name: "Max",
							},
							{
								type: "min",
								name: "Min",
							},
						],
					},
					markLine: {
						data: [
							{
								type: "average",
								name: "Mean",
							},
						],
					},
				},
			],
		});
	}

	//echart Bar Horizontal

	if ($("#echart_bar_horizontal").length) {
		var echartBar = echarts.init(document.getElementById("echart_bar_horizontal"), theme);

		echartBar.setOption({
			title: {
				text: "Bar Graph",
				subtext: "Graph subtitle",
			},
			tooltip: {
				trigger: "axis",
			},
			legend: {
				x: 100,
				data: ["2015", "2016"],
			},
			toolbox: {
				show: true,
				feature: {
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			calculable: true,
			xAxis: [
				{
					type: "value",
					boundaryGap: [0, 0.01],
				},
			],
			yAxis: [
				{
					type: "category",
					data: ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
				},
			],
			series: [
				{
					name: "2015",
					type: "bar",
					data: [18203, 23489, 29034, 104970, 131744, 630230],
				},
				{
					name: "2016",
					type: "bar",
					data: [19325, 23438, 31000, 121594, 134141, 681807],
				},
			],
		});
	}

	//echart Pie Collapse

	if ($("#echart_pie2").length) {
		var echartPieCollapse = echarts.init(document.getElementById("echart_pie2"), theme);

		echartPieCollapse.setOption({
			tooltip: {
				trigger: "item",
				formatter: "{a} <br/>{b} : {c} ({d}%)",
			},
			legend: {
				x: "center",
				y: "bottom",
				data: ["rose1", "rose2", "rose3", "rose4", "rose5", "rose6"],
			},
			toolbox: {
				show: true,
				feature: {
					magicType: {
						show: true,
						type: ["pie", "funnel"],
					},
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			calculable: true,
			series: [
				{
					name: "Area Mode",
					type: "pie",
					radius: [25, 90],
					center: ["50%", 170],
					roseType: "area",
					x: "50%",
					max: 40,
					sort: "ascending",
					data: [
						{
							value: 10,
							name: "rose1",
						},
						{
							value: 5,
							name: "rose2",
						},
						{
							value: 15,
							name: "rose3",
						},
						{
							value: 25,
							name: "rose4",
						},
						{
							value: 20,
							name: "rose5",
						},
						{
							value: 35,
							name: "rose6",
						},
					],
				},
			],
		});
	}

	//echart Donut

	if ($("#echart_donut").length) {
		var echartDonut = echarts.init(document.getElementById("echart_donut"), theme);

		echartDonut.setOption({
			tooltip: {
				trigger: "item",
				formatter: "{a} <br/>{b} : {c} ({d}%)",
			},
			calculable: true,
			legend: {
				x: "center",
				y: "bottom",
				data: ["Direct Access", "E-mail Marketing", "Union Ad", "Video Ads", "Search Engine"],
			},
			toolbox: {
				show: true,
				feature: {
					magicType: {
						show: true,
						type: ["pie", "funnel"],
						option: {
							funnel: {
								x: "25%",
								width: "50%",
								funnelAlign: "center",
								max: 1548,
							},
						},
					},
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			series: [
				{
					name: "Access to the resource",
					type: "pie",
					radius: ["35%", "55%"],
					itemStyle: {
						normal: {
							label: {
								show: true,
							},
							labelLine: {
								show: true,
							},
						},
						emphasis: {
							label: {
								show: true,
								position: "center",
								textStyle: {
									fontSize: "14",
									fontWeight: "normal",
								},
							},
						},
					},
					data: [
						{
							value: 335,
							name: "Direct Access",
						},
						{
							value: 310,
							name: "E-mail Marketing",
						},
						{
							value: 234,
							name: "Union Ad",
						},
						{
							value: 135,
							name: "Video Ads",
						},
						{
							value: 1548,
							name: "Search Engine",
						},
					],
				},
			],
		});
	}

	//echart Pie

	if ($("#echart_pie").length) {
		var echartPie = echarts.init(document.getElementById("echart_pie"), theme);

		echartPie.setOption({
			tooltip: {
				trigger: "item",
				formatter: "{a} <br/>{b} : {c} ({d}%)",
			},
			legend: {
				x: "center",
				y: "bottom",
				data: ["Direct Access", "E-mail Marketing", "Union Ad", "Video Ads", "Search Engine"],
			},
			toolbox: {
				show: true,
				feature: {
					magicType: {
						show: true,
						type: ["pie", "funnel"],
						option: {
							funnel: {
								x: "25%",
								width: "50%",
								funnelAlign: "left",
								max: 1548,
							},
						},
					},
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			calculable: true,
			series: [
				{
					name: "访问来源",
					type: "pie",
					radius: "55%",
					center: ["50%", "48%"],
					data: [
						{
							value: 335,
							name: "Direct Access",
						},
						{
							value: 310,
							name: "E-mail Marketing",
						},
						{
							value: 234,
							name: "Union Ad",
						},
						{
							value: 135,
							name: "Video Ads",
						},
						{
							value: 1548,
							name: "Search Engine",
						},
					],
				},
			],
		});

		var dataStyle = {
			normal: {
				label: {
					show: false,
				},
				labelLine: {
					show: false,
				},
			},
		};

		var placeHolderStyle = {
			normal: {
				color: "rgba(0,0,0,0)",
				label: {
					show: false,
				},
				labelLine: {
					show: false,
				},
			},
			emphasis: {
				color: "rgba(0,0,0,0)",
			},
		};
	}

	//echart Mini Pie

	if ($("#echart_mini_pie").length) {
		var echartMiniPie = echarts.init(document.getElementById("echart_mini_pie"), theme);

		echartMiniPie.setOption({
			title: {
				text: "Chart #2",
				subtext: "From ExcelHome",
				sublink: "http://e.weibo.com/1341556070/AhQXtjbqh",
				x: "center",
				y: "center",
				itemGap: 20,
				textStyle: {
					color: "rgba(30,144,255,0.8)",
					fontFamily: "微软雅黑",
					fontSize: 35,
					fontWeight: "bolder",
				},
			},
			tooltip: {
				show: true,
				formatter: "{a} <br/>{b} : {c} ({d}%)",
			},
			legend: {
				orient: "vertical",
				x: 170,
				y: 45,
				itemGap: 12,
				data: ["68%Something #1", "29%Something #2", "3%Something #3"],
			},
			toolbox: {
				show: true,
				feature: {
					mark: {
						show: true,
					},
					dataView: {
						show: true,
						title: "Text View",
						lang: ["Text View", "Close", "Refresh"],
						readOnly: false,
					},
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			series: [
				{
					name: "1",
					type: "pie",
					clockWise: false,
					radius: [105, 130],
					itemStyle: dataStyle,
					data: [
						{
							value: 68,
							name: "68%Something #1",
						},
						{
							value: 32,
							name: "invisible",
							itemStyle: placeHolderStyle,
						},
					],
				},
				{
					name: "2",
					type: "pie",
					clockWise: false,
					radius: [80, 105],
					itemStyle: dataStyle,
					data: [
						{
							value: 29,
							name: "29%Something #2",
						},
						{
							value: 71,
							name: "invisible",
							itemStyle: placeHolderStyle,
						},
					],
				},
				{
					name: "3",
					type: "pie",
					clockWise: false,
					radius: [25, 80],
					itemStyle: dataStyle,
					data: [
						{
							value: 3,
							name: "3%Something #3",
						},
						{
							value: 97,
							name: "invisible",
							itemStyle: placeHolderStyle,
						},
					],
				},
			],
		});
	}

	//echart Map

	if ($("#echart_world_map").length) {
		var echartMap = echarts.init(document.getElementById("echart_world_map"), theme);

		echartMap.setOption({
			title: {
				text: "World Population (2010)",
				subtext: "from United Nations, Total population, both sexes combined, as of 1 July (thousands)",
				x: "center",
				y: "top",
			},
			tooltip: {
				trigger: "item",
				formatter: function (params) {
					var value = (params.value + "").split(".");
					value = value[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + "." + value[1];
					return params.seriesName + "<br/>" + params.name + " : " + value;
				},
			},
			toolbox: {
				show: true,
				orient: "vertical",
				x: "right",
				y: "center",
				feature: {
					mark: {
						show: true,
					},
					dataView: {
						show: true,
						title: "Text View",
						lang: ["Text View", "Close", "Refresh"],
						readOnly: false,
					},
					restore: {
						show: true,
						title: "Restore",
					},
					saveAsImage: {
						show: true,
						title: "Save Image",
					},
				},
			},
			dataRange: {
				min: 0,
				max: 1000000,
				text: ["High", "Low"],
				realtime: false,
				calculable: true,
				color: ["#087E65", "#26B99A", "#CBEAE3"],
			},
			series: [
				{
					name: "World Population (2010)",
					type: "map",
					mapType: "world",
					roam: false,
					mapLocation: {
						y: 60,
					},
					itemStyle: {
						emphasis: {
							label: {
								show: true,
							},
						},
					},
					data: [
						{
							name: "Afghanistan",
							value: 28397.812,
						},
						{
							name: "Angola",
							value: 19549.124,
						},
						{
							name: "Albania",
							value: 3150.143,
						},
						{
							name: "United Arab Emirates",
							value: 8441.537,
						},
						{
							name: "Argentina",
							value: 40374.224,
						},
						{
							name: "Armenia",
							value: 2963.496,
						},
						{
							name: "French Southern and Antarctic Lands",
							value: 268.065,
						},
						{
							name: "Australia",
							value: 22404.488,
						},
						{
							name: "Austria",
							value: 8401.924,
						},
						{
							name: "Azerbaijan",
							value: 9094.718,
						},
						{
							name: "Burundi",
							value: 9232.753,
						},
						{
							name: "Belgium",
							value: 10941.288,
						},
						{
							name: "Benin",
							value: 9509.798,
						},
						{
							name: "Burkina Faso",
							value: 15540.284,
						},
						{
							name: "Bangladesh",
							value: 151125.475,
						},
						{
							name: "Bulgaria",
							value: 7389.175,
						},
						{
							name: "The Bahamas",
							value: 66402.316,
						},
						{
							name: "Bosnia and Herzegovina",
							value: 3845.929,
						},
						{
							name: "Belarus",
							value: 9491.07,
						},
						{
							name: "Belize",
							value: 308.595,
						},
						{
							name: "Bermuda",
							value: 64.951,
						},
						{
							name: "Bolivia",
							value: 716.939,
						},
						{
							name: "Brazil",
							value: 195210.154,
						},
						{
							name: "Brunei",
							value: 27.223,
						},
						{
							name: "Bhutan",
							value: 716.939,
						},
						{
							name: "Botswana",
							value: 1969.341,
						},
						{
							name: "Central African Republic",
							value: 4349.921,
						},
						{
							name: "Canada",
							value: 34126.24,
						},
						{
							name: "Switzerland",
							value: 7830.534,
						},
						{
							name: "Chile",
							value: 17150.76,
						},
						{
							name: "China",
							value: 1359821.465,
						},
						{
							name: "Ivory Coast",
							value: 60508.978,
						},
						{
							name: "Cameroon",
							value: 20624.343,
						},
						{
							name: "Democratic Republic of the Congo",
							value: 62191.161,
						},
						{
							name: "Republic of the Congo",
							value: 3573.024,
						},
						{
							name: "Colombia",
							value: 46444.798,
						},
						{
							name: "Costa Rica",
							value: 4669.685,
						},
						{
							name: "Cuba",
							value: 11281.768,
						},
						{
							name: "Northern Cyprus",
							value: 1.468,
						},
						{
							name: "Cyprus",
							value: 1103.685,
						},
						{
							name: "Czech Republic",
							value: 10553.701,
						},
						{
							name: "Germany",
							value: 83017.404,
						},
						{
							name: "Djibouti",
							value: 834.036,
						},
						{
							name: "Denmark",
							value: 5550.959,
						},
						{
							name: "Dominican Republic",
							value: 10016.797,
						},
						{
							name: "Algeria",
							value: 37062.82,
						},
						{
							name: "Ecuador",
							value: 15001.072,
						},
						{
							name: "Egypt",
							value: 78075.705,
						},
						{
							name: "Eritrea",
							value: 5741.159,
						},
						{
							name: "Spain",
							value: 46182.038,
						},
						{
							name: "Estonia",
							value: 1298.533,
						},
						{
							name: "Ethiopia",
							value: 87095.281,
						},
						{
							name: "Finland",
							value: 5367.693,
						},
						{
							name: "Fiji",
							value: 860.559,
						},
						{
							name: "Falkland Islands",
							value: 49.581,
						},
						{
							name: "France",
							value: 63230.866,
						},
						{
							name: "Gabon",
							value: 1556.222,
						},
						{
							name: "United Kingdom",
							value: 62066.35,
						},
						{
							name: "Georgia",
							value: 4388.674,
						},
						{
							name: "Ghana",
							value: 24262.901,
						},
						{
							name: "Guinea",
							value: 10876.033,
						},
						{
							name: "Gambia",
							value: 1680.64,
						},
						{
							name: "Guinea Bissau",
							value: 10876.033,
						},
						{
							name: "Equatorial Guinea",
							value: 696.167,
						},
						{
							name: "Greece",
							value: 11109.999,
						},
						{
							name: "Greenland",
							value: 56.546,
						},
						{
							name: "Guatemala",
							value: 14341.576,
						},
						{
							name: "French Guiana",
							value: 231.169,
						},
						{
							name: "Guyana",
							value: 786.126,
						},
						{
							name: "Honduras",
							value: 7621.204,
						},
						{
							name: "Croatia",
							value: 4338.027,
						},
						{
							name: "Haiti",
							value: 9896.4,
						},
						{
							name: "Hungary",
							value: 10014.633,
						},
						{
							name: "Indonesia",
							value: 240676.485,
						},
						{
							name: "India",
							value: 1205624.648,
						},
						{
							name: "Ireland",
							value: 4467.561,
						},
						{
							name: "Iran",
							value: 240676.485,
						},
						{
							name: "Iraq",
							value: 30962.38,
						},
						{
							name: "Iceland",
							value: 318.042,
						},
						{
							name: "Israel",
							value: 7420.368,
						},
						{
							name: "Italy",
							value: 60508.978,
						},
						{
							name: "Jamaica",
							value: 2741.485,
						},
						{
							name: "Jordan",
							value: 6454.554,
						},
						{
							name: "Japan",
							value: 127352.833,
						},
						{
							name: "Kazakhstan",
							value: 15921.127,
						},
						{
							name: "Kenya",
							value: 40909.194,
						},
						{
							name: "Kyrgyzstan",
							value: 5334.223,
						},
						{
							name: "Cambodia",
							value: 14364.931,
						},
						{
							name: "South Korea",
							value: 51452.352,
						},
						{
							name: "Kosovo",
							value: 97.743,
						},
						{
							name: "Kuwait",
							value: 2991.58,
						},
						{
							name: "Laos",
							value: 6395.713,
						},
						{
							name: "Lebanon",
							value: 4341.092,
						},
						{
							name: "Liberia",
							value: 3957.99,
						},
						{
							name: "Libya",
							value: 6040.612,
						},
						{
							name: "Sri Lanka",
							value: 20758.779,
						},
						{
							name: "Lesotho",
							value: 2008.921,
						},
						{
							name: "Lithuania",
							value: 3068.457,
						},
						{
							name: "Luxembourg",
							value: 507.885,
						},
						{
							name: "Latvia",
							value: 2090.519,
						},
						{
							name: "Morocco",
							value: 31642.36,
						},
						{
							name: "Moldova",
							value: 103.619,
						},
						{
							name: "Madagascar",
							value: 21079.532,
						},
						{
							name: "Mexico",
							value: 117886.404,
						},
						{
							name: "Macedonia",
							value: 507.885,
						},
						{
							name: "Mali",
							value: 13985.961,
						},
						{
							name: "Myanmar",
							value: 51931.231,
						},
						{
							name: "Montenegro",
							value: 620.078,
						},
						{
							name: "Mongolia",
							value: 2712.738,
						},
						{
							name: "Mozambique",
							value: 23967.265,
						},
						{
							name: "Mauritania",
							value: 3609.42,
						},
						{
							name: "Malawi",
							value: 15013.694,
						},
						{
							name: "Malaysia",
							value: 28275.835,
						},
						{
							name: "Namibia",
							value: 2178.967,
						},
						{
							name: "New Caledonia",
							value: 246.379,
						},
						{
							name: "Niger",
							value: 15893.746,
						},
						{
							name: "Nigeria",
							value: 159707.78,
						},
						{
							name: "Nicaragua",
							value: 5822.209,
						},
						{
							name: "Netherlands",
							value: 16615.243,
						},
						{
							name: "Norway",
							value: 4891.251,
						},
						{
							name: "Nepal",
							value: 26846.016,
						},
						{
							name: "New Zealand",
							value: 4368.136,
						},
						{
							name: "Oman",
							value: 2802.768,
						},
						{
							name: "Pakistan",
							value: 173149.306,
						},
						{
							name: "Panama",
							value: 3678.128,
						},
						{
							name: "Peru",
							value: 29262.83,
						},
						{
							name: "Philippines",
							value: 93444.322,
						},
						{
							name: "Papua New Guinea",
							value: 6858.945,
						},
						{
							name: "Poland",
							value: 38198.754,
						},
						{
							name: "Puerto Rico",
							value: 3709.671,
						},
						{
							name: "North Korea",
							value: 1.468,
						},
						{
							name: "Portugal",
							value: 10589.792,
						},
						{
							name: "Paraguay",
							value: 6459.721,
						},
						{
							name: "Qatar",
							value: 1749.713,
						},
						{
							name: "Romania",
							value: 21861.476,
						},
						{
							name: "Russia",
							value: 21861.476,
						},
						{
							name: "Rwanda",
							value: 10836.732,
						},
						{
							name: "Western Sahara",
							value: 514.648,
						},
						{
							name: "Saudi Arabia",
							value: 27258.387,
						},
						{
							name: "Sudan",
							value: 35652.002,
						},
						{
							name: "South Sudan",
							value: 9940.929,
						},
						{
							name: "Senegal",
							value: 12950.564,
						},
						{
							name: "Solomon Islands",
							value: 526.447,
						},
						{
							name: "Sierra Leone",
							value: 5751.976,
						},
						{
							name: "El Salvador",
							value: 6218.195,
						},
						{
							name: "Somaliland",
							value: 9636.173,
						},
						{
							name: "Somalia",
							value: 9636.173,
						},
						{
							name: "Republic of Serbia",
							value: 3573.024,
						},
						{
							name: "Suriname",
							value: 524.96,
						},
						{
							name: "Slovakia",
							value: 5433.437,
						},
						{
							name: "Slovenia",
							value: 2054.232,
						},
						{
							name: "Sweden",
							value: 9382.297,
						},
						{
							name: "Swaziland",
							value: 1193.148,
						},
						{
							name: "Syria",
							value: 7830.534,
						},
						{
							name: "Chad",
							value: 11720.781,
						},
						{
							name: "Togo",
							value: 6306.014,
						},
						{
							name: "Thailand",
							value: 66402.316,
						},
						{
							name: "Tajikistan",
							value: 7627.326,
						},
						{
							name: "Turkmenistan",
							value: 5041.995,
						},
						{
							name: "East Timor",
							value: 10016.797,
						},
						{
							name: "Trinidad and Tobago",
							value: 1328.095,
						},
						{
							name: "Tunisia",
							value: 10631.83,
						},
						{
							name: "Turkey",
							value: 72137.546,
						},
						{
							name: "United Republic of Tanzania",
							value: 44973.33,
						},
						{
							name: "Uganda",
							value: 33987.213,
						},
						{
							name: "Ukraine",
							value: 46050.22,
						},
						{
							name: "Uruguay",
							value: 3371.982,
						},
						{
							name: "United States of America",
							value: 312247.116,
						},
						{
							name: "Uzbekistan",
							value: 27769.27,
						},
						{
							name: "Venezuela",
							value: 236.299,
						},
						{
							name: "Vietnam",
							value: 89047.397,
						},
						{
							name: "Vanuatu",
							value: 236.299,
						},
						{
							name: "West Bank",
							value: 13.565,
						},
						{
							name: "Yemen",
							value: 22763.008,
						},
						{
							name: "South Africa",
							value: 51452.352,
						},
						{
							name: "Zambia",
							value: 13216.985,
						},
						{
							name: "Zimbabwe",
							value: 13076.978,
						},
					],
				},
			],
		});
	}
}

$(document).ready(function () {
	init_sparklines();
	init_flot_chart();
	init_sidebar();
	init_wysiwyg();
	init_InputMask();
	init_JQVmap();
	init_cropper();
	init_knob();
	init_IonRangeSlider();
	init_ColorPicker();
	init_TagsInput();
	init_parsley();
	init_daterangepicker();
	init_daterangepicker_right();
	init_daterangepicker_single_call();
	init_daterangepicker_reservation();
	init_SmartWizard();
	init_EasyPieChart();
	init_charts();
	init_echarts();
	init_morris_charts();
	init_skycons();
	init_select2();
	init_validator();
	init_DataTables();
	init_chart_doughnut();
	init_gauge();
	init_PNotify();
	init_starrr();
	init_calendar();
	init_compose();
	init_CustomNotification();
	init_autosize();
	init_autocomplete();
});
